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

零门槛开发出生证明档案管理系统完整落地教程

发布时间:2026年08月20日 07:35:25 浏览量:0

第一步:环境准备与依赖安装

在开始构建系统之前,必须确保本地开发环境已经配置妥当。本系统基于Python轻量级Web框架Flask开发,无需配置复杂的服务器环境,适合快速落地。请确保你的系统中已安装Python 3.8及以上版本。

打开终端(Windows下为CMD或PowerShell),执行以下命令创建项目目录并进入:

```bash mkdir birth_cert_system cd birth_cert_system ```

接下来,创建一个虚拟环境以隔离项目依赖,避免版本冲突。执行以下命令:

```bash python -m venv venv ```

激活虚拟环境。Windows系统执行:

```bash venv\Scripts\activate ``>

Linux或macOS系统执行:

```bash source venv/bin/activate ```

安装核心依赖包Flask(Web框架)和Flask-SQLAlchemy(数据库ORM工具)。请直接复制以下命令执行:

```bash pip install flask flask-sqlalchemy ```

第二步:数据库模型设计与配置

出生证明档案包含关键字段,必须确保数据结构严谨。我们将使用SQLite作为数据库,因为它无需安装数据库服务,以单个文件形式存储,非常适合中小规模档案管理。在项目根目录下创建app.py文件,并写入以下完整代码:

```python import os from flask import Flask, render_template, request, redirect, url_for, flash from flask_sqlalchemy import SQLAlchemy from datetime import datetime 初始化应用 app = Flask(__name__) app.config['SECRET_KEY'] = 'dev-secret-key-change-in-prod' 配置数据库路径,基于实例文件夹 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///birth_records.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) 定义出生证明档案数据模型 class BirthRecord(db.Model): id = db.Column(db.Integer, primary_key=True) child_name = db.Column(db.String(50), nullable=False) gender = db.Column(db.String(10), nullable=False) birth_date = db.Column(db.Date, nullable=False) birth_weight = db.Column(db.Float) 体重kg mother_name = db.Column(db.String(50), nullable=False) mother_id = db.Column(db.String(18), nullable=False) 身份证号 father_name = db.Column(db.String(50), nullable=False) father_id = db.Column(db.String(18), nullable=False) hospital_name = db.Column(db.String(100), nullable=False) doctor_name = db.Column(db.String(50)) created_at = db.Column(db.DateTime, default=datetime.now) def __repr__(self): return f'' ```

上述代码定义了BirthRecord类,映射到数据库中的birth_record表。其中包含了新生儿姓名、性别、出生日期、体重、父母信息及医院信息等核心字段。请确保app.py文件保存无误。

第三步:初始化数据库与路由逻辑实现

继续在app.py文件中追加以下代码,用于初始化数据库表、处理数据查询、新增和删除请求。这部分代码是系统的核心逻辑层:

```python 路由:首页,展示所有档案列表 @app.route('/') def index(): 按创建时间倒序排列查询所有记录 records = BirthRecord.query.order_by(BirthRecord.created_at.desc()).all() return render_template('index.html', records=records) 路由:新增档案页面 @app.route('/add', methods=['GET', 'POST']) def add_record(): if request.method == 'POST': try: 获取表单数据并进行基础转换 birth_date_str = request.form['birth_date'] birth_date = datetime.strptime(birth_date_str, '%Y-%m-%d').date() new_record = BirthRecord( child_name=request.form['child_name'], gender=request.form['gender'], birth_date=birth_date, birth_weight=float(request.form['birth_weight']) if request.form['birth_weight'] else None, mother_name=request.form['mother_name'], mother_id=request.form['mother_id'], father_name=request.form['father_name'], father_id=request.form['father_id'], hospital_name=request.form['hospital_name'], doctor_name=request.form['doctor_name'] ) db.session.add(new_record) db.session.commit() flash('档案录入成功!', 'success') return redirect(url_for('index')) except Exception as e: db.session.rollback() flash(f'录入失败,请检查数据格式。错误信息:{str(e)}', 'error') return render_template('add.html') 路由:删除档案 @app.route('/delete/') def delete_record(id): record = BirthRecord.query.get_or_404(id) db.session.delete(record) db.session.commit() flash('档案已删除。', 'info') return redirect(url_for('index')) if __name__ == '__main__': 确保在运行前创建所有表结构 with app.app_context(): db.create_all() app.run(debug=True) ```

零门槛开发出生证明档案管理系统完整落地教程

请注意,db.create_all()被放在了app_context中执行,这是Flask 2.3+版本的强制要求,用于确保数据库表在启动时自动创建。

第四步:前端页面模板开发

为了展示数据和录入表单,我们需要创建HTML模板。在项目根目录下创建一个名为templates的文件夹。Flask会自动在此目录下查找模板文件。

1. 创建基础布局模板templates文件夹下创建base.html,用于统一管理页面样式和导航栏:

```html 出生证明档案管理系统
出生证明档案管理系统
{% with messages = get_flashed_messages(with_categories=true) %} {% if messages %} {% for category, message in messages %}
{{ message }}
{% endfor %} {% endif %} {% endwith %} {% block content %}{% endblock %}
```

2. 创建列表展示页templates文件夹下创建index.html,用于展示所有已录入的出生证明档案:

```html {% extends "base.html" %} {% block content %}

档案列表

{% if records %} {% for record in records %} {% endfor %}
新生儿姓名 出生日期 母亲姓名 父亲姓名 签发医院 操作
{{ record.child_name }} {{ record.gender }} {{ record.birth_date }} {{ record.mother_name }} {{ record.father_name }} {{ record.hospital_name }} 删除
{% else %}

暂无档案数据,请点击上方“录入新档案”添加。

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

3. 创建录入表单页templates文件夹下创建add.html,用于提供数据录入界面:

```html {% extends "base.html" %} {% block content %}

录入新档案

{% endblock %} ```

第五步:启动系统与功能验证

所有文件代码准备就绪后,即可启动系统。确保终端依然处于虚拟环境激活状态,且位于项目根目录下。执行以下命令启动Flask开发服务器:

```bash python app.py ```

当终端显示Running on http://127.0.0.1:5000时,说明启动成功。打开浏览器,访问上述地址。

验证步骤如下:

  • 初始化检查:首次访问时,系统会自动在项目目录下生成instance文件夹,并在其中创建birth_records.db数据库文件。页面应显示“暂无档案数据”。
  • 录入功能测试:点击导航栏“录入新档案”,填写表单信息。注意出生日期必须选择,父母姓名和身份证号为必填项。点击提交后,系统应跳转回首页并提示“档案录入成功”。
  • 列表展示测试:首页表格应正确显示刚才录入的信息,包括姓名、性别、日期等,且格式整齐。
  • 删除功能测试:点击列表右侧的“删除”按钮,确认弹窗后,该条记录应从页面和数据库中移除,并提示“档案已删除”。

至此,一个功能完整、数据持久化的出生证明档案管理系统已完全落地。该系统具备基础的增删查(CRUD)功能,且界面简洁,易于根据后续需求进行扩展,例如添加PDF文件上传或用户登录鉴权功能。

从一团乱麻到井井有条:中学档案制度建设实操案例分享
从一团乱麻到井井有条:中学档案制度建设实操案例分享
害,说起来你们可能不信,去年我帮在郊区公办中学当教务主任的表姐搭档案体系,前前后后踩的坑连起来能绕学校操场三圈,最后搞出来的成品还拿了教育局的市级档案管理示范奖,今天就把这套我亲测能用的中学档案制度建...
2026年08月20日 07:35:25
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818