网站首页/ 信息中心/ 档案百科/

基于轻量技术从零搭建传染病防治档案管理系统附核心配置

发布时间:2026年07月01日 02:05:12 浏览量:0

一、前置准备:10分钟搞定所有工具

本指南使用Python+Flask+SQLite,无需复杂服务器、数据库环境,Windows/Mac/Linux通用。

二、目录结构:提前创建避免混乱

在桌面新建文件夹命名为「infection_archive_system」,内部严格按以下结构创建文件/文件夹:

三、后端逻辑:app.py完整可复制代码

打开任意纯文本编辑器(Windows记事本/VS Code,Mac TextEdit切换到「制作纯文本」模式),复制以下代码到app.py并保存:

``` from flask import Flask, render_template, request, redirect, url_for import sqlite3 app = Flask(__name__) 配置数据库路径 DATABASE = 'database.db' 初始化数据库(自动建表) def init_db(): conn = sqlite3.connect(DATABASE) cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS archives ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, id_card TEXT NOT NULL UNIQUE, infection_type TEXT NOT NULL, diagnosis_date TEXT NOT NULL, status TEXT NOT NULL, remark TEXT ) ''') conn.commit() conn.close() 获取数据库连接 def get_db_connection(): conn = sqlite3.connect(DATABASE) conn.row_factory = sqlite3.Row return conn 首页:展示所有档案 @app.route('/') def index(): conn = get_db_connection() archives = conn.execute('SELECT FROM archives ORDER BY diagnosis_date DESC').fetchall() conn.close() return render_template('index.html', archives=archives) 新增档案页 @app.route('/add', methods=('GET', 'POST')) def add(): if request.method == 'POST': name = request.form['name'] id_card = request.form['id_card'] infection_type = request.form['infection_type'] diagnosis_date = request.form['diagnosis_date'] status = request.form['status'] remark = request.form['remark'] conn = get_db_connection() try: conn.execute(''' INSERT INTO archives (name, id_card, infection_type, diagnosis_date, status, remark) VALUES (?, ?, ?, ?, ?, ?) ''', (name, id_card, infection_type, diagnosis_date, status, remark)) conn.commit() conn.close() return redirect(url_for('index')) except sqlite3.IntegrityError: conn.close() return render_template('add.html', error='身份证号已存在!') return render_template('add.html') 删除档案 @app.route('/delete/', methods=('POST',)) def delete(id): conn = get_db_connection() conn.execute('DELETE FROM archives WHERE id = ?', (id,)) conn.commit() conn.close() return redirect(url_for('index')) if __name__ == '__main__': init_db() app.run(debug=True) ```

四、前端模板:无需前端基础直接复制

1. 公共模板base.html

基于轻量技术从零搭建传染病防治档案管理系统附核心配置

统一导航栏和页面样式,复制以下代码到templates/base.html:

``` {% block title %}{% endblock %} - 传染病防治档案管理系统 {% block content %}{% endblock %} ```

2. 档案列表页index.html

继承base.html,展示所有数据并提供新增/删除按钮,复制以下代码:

``` {% extends "base.html" %} {% block title %}档案列表{% endblock %} {% block content %} 传染病防治档案列表 新增档案 {% if archives %} {% for archive in archives %} {% endfor %}
序号 姓名 身份证号 传染病类型 诊断日期 当前状态 备注 操作
{{ loop.index }} {{ archive['name'] }} {{ archive['id_card'] }} {{ archive['infection_type'] }} {{ archive['diagnosis_date'] }} {{ archive['status'] }} {{ archive['remark'] or '无' }}
{% else %}

暂无档案数据

{% endif %} {% endblock %} ```

3. 新增档案页add.html

继承base.html,提供表单并校验身份证唯一性,复制以下代码:

``` {% extends "base.html" %} {% block title %}新增档案{% endblock %} {% block content %} 新增传染病防治档案 {% if error %}
{{ error }}
{% endif %}
取消
{% endblock %} ```

五、启动与测试:零门槛上线本地系统

  • 启动后端服务:终端进入「infection_archive_system」文件夹(Windows输入`cd Desktop\infection_archive_system`,Mac输入`cd ~/Desktop/infection_archive_system`),然后输入`python app.py`启动
  • 访问系统:浏览器打开终端显示的地址(默认是http://127.0.0.1:5000)
  • 核心功能测试
    • 点击「新增档案」,填写有效信息保存,跳转回列表页可看到新数据
    • 尝试重复输入同一身份证号,会提示错误
    • 点击删除按钮,确认后数据消失

六、数据备份:10秒搞定本地数据安全

直接复制「infection_archive_system」文件夹里的「database.db」文件到U盘/网盘即可,恢复时替换原文件夹的同名文件重启服务。

微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818