Python打造在线食品安全追溯系统

admin 2025-01-13 836 0

食品安全一直是公众关注的焦点。如何确保食品从田间到餐桌的每一个环节都安全可靠?本文将介绍如何利用Python语言开发一个在线食品安全追溯系统,帮助消费者和企业实现食品信息的透明化。

Python打造在线食品安全追溯系统

系统设计思路

1. 数据采集与存储

首先,我们需要建立一个数据库来存储食品的生产、加工、运输和销售信息。可以使用SQLite作为轻量级数据库,便于快速开发和部署。

import sqlite3

def create_database():
    conn = sqlite3.connect('food_trace.db')
    c = conn.cursor()
    c.execute('''CREATE TABLE IF NOT EXISTS food_info
                 (id INTEGER PRIMARY KEY, product_name TEXT, producer TEXT, 
                  production_date TEXT, batch_number TEXT, transport_info TEXT, 
                  retailer TEXT, qr_code TEXT)''')
    conn.commit()
    conn.close()

create_database()

2. 信息录入与更新

企业和农户可以通过一个简单的Web界面录入食品信息。我们可以使用Flask框架来构建这个界面。

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/add_food', methods=['GET', 'POST'])
def add_food():
    if request.method == 'POST':
        product_name = request.form['product_name']
        producer = request.form['producer']
        production_date = request.form['production_date']
        batch_number = request.form['batch_number']
        transport_info = request.form['transport_info']
        retailer = request.form['retailer']
        qr_code = generate_qr_code(product_name, batch_number)

        conn = sqlite3.connect('food_trace.db')
        c = conn.cursor()
        c.execute('''INSERT INTO food_info (product_name, producer, production_date, 
                      batch_number, transport_info, retailer, qr_code) 
                      VALUES (?, ?, ?, ?, ?, ?, ?)''', 
                  (product_name, producer, production_date, batch_number, transport_info, retailer, qr_code))
        conn.commit()
        conn.close()
        return '信息录入成功'
    return render_template('add_food.html')

def generate_qr_code(product_name, batch_number):
    import qrcode
    data = f"{product_name}_{batch_number}"
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    qr.add_data(data)
    qr.make(fit=True)
    img = qr.make_image(fill_color="black", back_color="white")
    img.save(f"{data}.png")
    return f"{data}.png"

if __name__ == '__main__':
    app.run(debug=True)

3. 信息查询

消费者可以通过扫描二维码或输入批次号查询食品的详细信息。

@app.route('/query_food', methods=['GET', 'POST'])
def query_food():
    if request.method == 'POST':
        batch_number = request.form['batch_number']
        conn = sqlite3.connect('food_trace.db')
        c = conn.cursor()
        c.execute('''SELECT * FROM food_info WHERE batch_number=?''', (batch_number,))
        result = c.fetchone()
        conn.close()
        if result:
            return render_template('food_details.html', food_info=result)
        else:
            return '未找到相关信息'
    return render_template('query_food.html')

系统优势

  1. 透明化:消费者可以轻松查询食品的来源和流通信息,增强信任感。
  2. 高效性:企业可以快速录入和更新食品信息,提高管理效率。
  3. 可扩展性:系统架构简单,易于扩展和维护。

未来展望

未来,我们可以引入区块链技术,确保数据的不可篡改性,进一步提升系统的安全性和可信度。此外,还可以加入智能合约,自动执行食品安全相关的合同条款。

通过Python语言和简单的Web框架,我们成功构建了一个在线食品安全追溯系统。这不仅为消费者提供了透明的食品信息,也为企业提供了高效的管理工具。希望这个系统能为食品安全领域带来新的变革。

评论(0)