商品检验档案管理系统从零搭建:实操全流程指南
一、环境准备(零门槛)
1. 安装Python 3.11.4(适配本次搭建,避免版本兼容问题),直接下载地址:https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe,安装时必须勾选“Add Python to PATH”选项,默认路径安装即可。
2. 打开命令提示符(Win+R输入cmd),执行命令安装依赖:
pip install flask==2.3.3
二、项目初始化
2.1 创建项目目录
在D盘新建项目文件夹,执行命令:
D: & mkdir product_archive & cd product_archive
在该文件夹下创建3个核心文件/文件夹:
- 主程序文件:app.py
- 前端页面文件夹:templates
- 静态资源文件夹:static(本次搭建暂无需,后续扩展可加)
2.2 核心主程序代码(app.py)
复制以下完整代码到app.py,不要修改文件名和参数: ```python from flask import Flask, request, render_template, redirect, url_for, send_file import sqlite3 import os app = Flask(__name__) DATABASE = 'archive.db' 初始化数据库 def init_db(): if not os.path.exists(DATABASE): conn = sqlite3.connect(DATABASE) cur = conn.cursor() cur.execute(''' CREATE TABLE IF NOT EXISTS inspection_archive ( id INTEGER PRIMARY KEY AUTOINCREMENT, product_name TEXT NOT NULL, inspection_date TEXT NOT NULL, inspector TEXT NOT NULL, result TEXT NOT NULL, remark TEXT ) ''') conn.commit() conn.close() 首页路由:显示档案列表 @app.route('/') def index(): conn = sqlite3.connect(DATABASE) cur = conn.cursor() cur.execute('SELECT FROM inspection_archive ORDER BY id DESC') archives = cur.fetchall() conn.close() return render_template('index.html', archives=archives) 新增档案路由 @app.route('/add', methods=['POST']) def add_archive(): product_name = request.form['product_name'] inspection_date = request.form['inspection_date'] inspector = request.form['inspector'] result = request.form['result'] remark = request.form['remark'] conn = sqlite3.connect(DATABASE) cur = conn.cursor() cur.execute(''' INSERT INTO inspection_archive (product_name, inspection_date, inspector, result, remark) VALUES (?, ?, ?, ?, ?) ''', (product_name, inspection_date, inspector, result, remark)) conn.commit() conn.close() return redirect(url_for('index')) 导出CSV路由(可选扩展) @app.route('/export') def export_csv(): conn = sqlite3.connect(DATABASE) cur = conn.cursor() cur.execute('SELECT id, product_name, inspection_date, inspector, result, remark FROM inspection_archive') rows = cur.fetchall() conn.close() import csv with open('archive_export.csv', 'w', newline='', encoding='utf-8-sig') as f: writer = csv.writer(f) writer.writerow(['ID', '商品名称', '检验日期', '检验人', '检验结果', '备注']) writer.writerows(rows) return send_file('archive_export.csv', as_attachment=True, download_name='商品检验档案导出.csv') if __name__ == '__main__': with app.app_context(): init_db() app.run(debug=True) ```
三、前端页面编写(templates/index.html)

在product_archive/templates文件夹下新建index.html,复制以下完整代码: ```html
新增检验档案
已保存的检验档案
| ID | 商品名称 | 检验日期 | 检验人 | 检验结果 | 备注 |
|---|---|---|---|---|---|
| {{ archive[0] }} | {{ archive[1] }} | {{ archive[2] }} | {{ archive[3] }} | {{ archive[4] }} | {{ archive[5] if archive[5] else '-' }} |
四、运行与测试
1. 回到命令提示符,进入product_archive文件夹,执行运行命令:
python app.py
2. 打开浏览器,在地址栏输入:http://127.0.0.1:5000,即可访问系统。
3. 实操测试:
- 填写商品名称、检验日期、检验人等字段,点击“提交档案”,页面会自动刷新并显示新增的档案;
- 点击“导出档案为CSV”,会自动下载包含所有档案的CSV文件,可直接用Excel打开查看。
注意:运行时如果提示端口被占用,可修改app.run的端口,比如改成app.run(port=5001)
五、常见问题排查
1. 命令提示“pip不是内部命令”:说明安装Python时未勾选Add Python to PATH,需卸载重装,务必勾选该选项; 2. 浏览器打不开页面:检查是否运行了python app.py命令,是否有报错信息,若有,复制报错内容排查; 3. 提交后无数据:检查index.html的form标签action是否为“/add”,method是否为“post”,字段名是否和app.py里的request.form一致。