企业级综合档案管理系统食品版从零搭建实操全指南
一、前置环境准备
本方案基于Python轻量架构开发,无需复杂服务器配置,个人PC即可运行,完全适配食品行业供应商资质、产品批次、质检效期的档案管理需求,所有步骤可直接复制操作,零门槛落地。
1. 安装基础环境
首先安装Python3.8及以上版本,官方下载地址:https://www.python.org/downloads/,安装过程中必须勾选Add Python to PATH选项,否则后续命令无法运行。
安装完成后打开命令提示符(cmd),直接复制运行以下命令安装所有依赖:
``` pip install flask flask_sqlalchemy ```二、项目结构与核心代码编写
1. 创建项目文件结构
在电脑任意目录新建文件夹命名为food_archive,在该文件夹内再新建文件夹命名为templates,最终结构为:
- food_archive/ 项目根目录
- ├─ app.py 系统主程序
- └─ templates/ 前端页面文件夹
2. 编写主程序app.py
打开项目根目录的app.py,直接复制粘贴以下完整代码,无需修改任何内容即可使用:
``` from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///food_archive.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) 食品行业专属档案模型 供应商资质档案 class SupplierArchive(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) license_no = db.Column(db.String(50), nullable=False) contact = db.Column(db.String(20)) address = db.Column(db.String(200)) create_time = db.Column(db.DateTime, default=db.func.now()) 产品批次档案 class ProductBatchArchive(db.Model): id = db.Column(db.Integer, primary_key=True) product_name = db.Column(db.String(100), nullable=False) batch_no = db.Column(db.String(50), nullable=False) produce_date = db.Column(db.Date, nullable=False) expire_date = db.Column(db.Date, nullable=False) supplier_id = db.Column(db.Integer, db.ForeignKey('supplier_archive.id'), nullable=False) qc_result = db.Column(db.String(20), default="待检") 第一次运行自动生成数据库 with app.app_context(): db.create_all() 系统路由 @app.route('/') def index(): batch_list = ProductBatchArchive.query.order_by(ProductBatchArchive.produce_date.desc()).all() return render_template('index.html', batch_list=batch_list) @app.route('/add_batch', methods=['GET', 'POST']) def add_batch(): if request.method == 'POST': new_batch = ProductBatchArchive( product_name=request.form.get('product_name'), batch_no=request.form.get('batch_no'), produce_date=request.form.get('produce_date'), expire_date=request.form.get('expire_date'), supplier_id=int(request.form.get('supplier_id')), qc_result=request.form.get('qc_result') ) db.session.add(new_batch) db.session.commit() return redirect(url_for('index')) suppliers = SupplierArchive.query.all() return render_template('add_batch.html', suppliers=suppliers) @app.route('/add_supplier', methods=['GET', 'POST']) def add_supplier(): if request.method == 'POST': new_supplier = SupplierArchive( name=request.form.get('name'), license_no=request.form.get('license_no'), contact=request.form.get('contact'), address=request.form.get('address') ) db.session.add(new_supplier) db.session.commit() return redirect(url_for('index')) return render_template('add_supplier.html') if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=5000) ```3. 编写前端页面模板
在templates文件夹内新建3个html文件,依次复制对应内容:
第一个文件:index.html(系统首页)
食品综合档案管理系统 新增供应商档案 新增产品批次档案
| 产品名称 | 批次号 | 生产日期 | 到期日期 | 质检结果 |
|---|---|---|---|---|
| {{ batch.product_name }} | {{ batch.batch_no }} | {{ batch.produce_date }} | {{ batch.expire_date }} | {{ batch.qc_result }} |

第二个文件:add_supplier.html(新增供应商页面)
新增供应商档案
```第三个文件:add_batch.html(新增产品批次页面)
新增产品批次档案
```三、启动运行与基础使用
1. 启动系统
打开命令提示符(cmd),使用cd命令切换到项目根目录food_archive,直接运行以下命令:
看到命令行输出 Running on http://127.0.0.1:5000即代表启动成功。
2. 正常使用流程
- 打开浏览器访问地址
http://127.0.0.1:5000进入系统首页 - 第一步先录入供应商档案,留存食品经营许可证信息,满足监管要求
- 第二步录入产品批次档案,按批次登记生产日期、保质期、质检结果,所有数据自动存储
四、常用功能扩展
1. 导出Excel档案:安装pandas openpyxl依赖后,可添加导出接口,直接把所有档案导出为Excel文件,用于监管检查。
2. 近效期预警:在首页代码中添加筛选条件,自动筛选出距离到期不足3个月的产品批次,添加标红样式即可实现效期提醒。
3. 团队多端使用:如果需要部署到公网,将项目上传到云服务器,开放5000端口,通过服务器公网IP即可访问,无需额外修改代码。
常见问题解决:启动提示模块找不到,重新运行pip install flask flask_sqlalchemy即可,若仍报错,检查Python安装时是否勾选了Add Python to PATH选项。