从零搭建可落地的印刷经营许可证档案管理系统实操指南

一、前期环境准备

本系统采用Python轻量架构,无需复杂数据库配置,普通用户可零门槛完成搭建,按照以下步骤依次操作即可:

1. 安装Python运行环境

直接打开下载地址:https://www.python.org/downloads/,下载对应你操作系统(Windows/MacOS)的最新稳定版安装包,安装时必须勾选「Add Python.exe to PATH」选项,再点击安装即可,全程默认配置不需要修改。

2. 安装项目依赖

安装完成后,打开电脑的命令提示符(Windows按Win+R输入cmd回车,MacOS打开终端),输入以下命令,即可完成依赖安装,已自动配置国内清华源,不会出现安装过慢问题:

``` pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask flask-sqlalchemy ```

如果需要增加账号密码登录功能,额外执行以下命令即可:

``` pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask-login ```

等待安装完成,没有报错即可进入下一步。

二、项目结构搭建

1. 创建目录与核心文件

从零搭建可落地的印刷经营许可证档案管理系统实操指南

在电脑任意位置新建文件夹,命名为print-license-system,在文件夹内新建空白文件,命名为app.py,将以下完整代码复制粘贴到文件中,可直接使用:

``` from flask import Flask, render_template, request, redirect from flask_sqlalchemy import SQLAlchemy from datetime import datetime, timedelta app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///../instance/print_license.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.jinja_env.globals.update(datetime=datetime, timedelta=timedelta) db = SQLAlchemy(app) 许可证档案数据模型 class LicenseArchive(db.Model): id = db.Column(db.Integer, primary_key=True) license_no = db.Column(db.String(50), unique=True, nullable=False) company_name = db.Column(db.String(100), nullable=False) issue_date = db.Column(db.Date, nullable=False) expire_date = db.Column(db.Date, nullable=False) issue_org = db.Column(db.String(100), nullable=False) scan_path = db.Column(db.String(200)) create_time = db.Column(db.DateTime, default=datetime.now) 初始化数据库 with app.app_context(): db.create_all() 首页:展示即将到期档案+全量列表 @app.route('/') def index(): soon_expire = LicenseArchive.query.filter(LicenseArchive.expire_date <= datetime.now().date() + timedelta(days=30)).filter(LicenseArchive.expire_date >= datetime.now().date()).all() all_archive = LicenseArchive.query.order_by(LicenseArchive.expire_date).all() return render_template('index.html', soon_expire=soon_expire, all_archive=all_archive) 新增/编辑档案 @app.route('/edit', methods=['GET', 'POST']) @app.route('/edit/', methods=['GET', 'POST']) def edit(id=None): if request.method == 'POST': data = request.form if id: archive = LicenseArchive.query.get(id) archive.license_no = data['license_no'] archive.company_name = data['company_name'] archive.issue_date = datetime.strptime(data['issue_date'], '%Y-%m-%d').date() archive.expire_date = datetime.strptime(data['expire_date'], '%Y-%m-%d').date() archive.issue_org = data['issue_org'] archive.scan_path = data['scan_path'] else: archive = LicenseArchive( license_no = data['license_no'], company_name = data['company_name'], issue_date = datetime.strptime(data['issue_date'], '%Y-%m-%d').date(), expire_date = datetime.strptime(data['expire_date'], '%Y-%m-%d').date(), issue_org = data['issue_org'], scan_path = data['scan_path'] ) db.session.add(archive) db.session.commit() return redirect('/') archive = LicenseArchive.query.get(id) if id else None return render_template('edit.html', archive=archive) 删除档案 @app.route('/delete/') def delete(id): archive = LicenseArchive.query.get(id) db.session.delete(archive) db.session.commit() return redirect('/') if __name__ == '__main__': app.run(debug=False) ```

2. 创建前端页面文件

在项目文件夹print-license-system内新建文件夹,命名为templates,在templates内新建两个文件:index.htmledit.html,分别复制对应代码:

index.html代码:

``` 印刷经营许可证档案管理

印刷经营许可证档案管理系统 {% if soon_expire|length > 0 %}

⚠️ 30天内到期许可证提醒

    {% for item in soon_expire %}
  • {{ item.company_name }} | 许可证号:{{ item.license_no }} | 到期日期:{{ item.expire_date }}
  • {% endfor %}
{% endif %} 新增档案

{% for item in all_archive %} = datetime.now().date() %}class="expire-soon andaliandongopft-wnri-u5sp"{% endif %}> {% endfor %}
许可证编号 单位名称 发证日期 到期日期 发证机关 操作
{{ item.license_no }} {{ item.company_name }} {{ item.issue_date }} {{ item.expire_date }} {{ item.issue_org }} 编辑 删除

```

edit.html代码:

``` {% if archive %}编辑{% else %}新增{% endif %}许可证档案

{% if archive %}编辑{% else %}新增{% endif %}印刷经营许可证档案

返回列表
```

三、启动运行与日常使用

1. 启动系统

打开命令提示符,进入项目目录(例如Windows下输入cd C:\Users\你的用户名\Desktop\print-license-system),输入启动命令:

``` python app.py ```

如果没有报错,会输出提示信息,打开浏览器输入http://127.0.0.1:5000即可进入系统使用。

2. 核心功能说明

  • 档案归档:点击首页「新增档案」,填写所有必填项,扫描件填写本地存储路径即可快速查找,保存后完成归档。
  • 到期提醒:系统自动在首页展示30天内即将到期的许可证,列表中也会高亮标注,无需手动筛选。
  • 数据备份:所有数据存储在项目目录的instance/print_license.db文件中,定期拷贝该文件到U盘即可完成备份,恢复时直接替换文件即可。

四、常见问题解决

  • 提示「pip不是内部或外部命令」:原因是安装Python时未勾选PATH选项,重新运行安装包,选择修改配置,勾选Add Python to PATH后保存即可。
  • 打开页面显示数据库错误:检查项目目录下是否存在instance文件夹,如果没有手动新建一个,重新启动即可。
  • 需要外网访问:可以使用花生壳内网穿透,将本地5000端口映射到外网即可,不需要修改系统代码。
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统