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

零基础手把手搭建养老保险档案管理软件

发布时间:2026年08月20日 08:40:08 浏览量:0

一、环境准备与依赖安装

在开始构建养老保险档案管理软件之前,我们需要准备好Python开发环境。本系统采用轻量级的Flask框架配合SQLite数据库,无需配置复杂的服务器环境,适合快速上手和落地。

1. 安装Python环境

请确保你的电脑上已经安装了Python。如果没有安装,请访问Python官方 releases 页面下载对应操作系统的安装包。对于Windows用户,建议下载 Python 3.10.x 或更高版本的 Windows installer (64-bit)。

下载地址:https://www.python.org/downloads/windows/

安装时,务必勾选 "Add Python to PATH" 选项,这将方便我们在命令行中直接执行Python命令。

2. 安装Flask框架

打开命令行工具(Win键+R,输入cmd,回车),输入以下命令安装Flask框架及其依赖。Flask是一个微型的Web开发框架,非常适合构建此类管理系统。

```bash pip install flask ```

为了确保安装成功,你可以输入 pip list 查看已安装的包列表中是否包含Flask。

二、项目目录结构创建

为了保持代码的整洁,我们需要在本地创建一个项目文件夹,并建立规范的目录结构。请在D盘或任意位置创建一个名为 pension_system 的文件夹,并在其中创建以下结构:

```text pension_system/ │ ├── app.py 后端核心逻辑文件 ├── init_db.py 数据库初始化脚本 └── templates/ 存放HTML模板的文件夹 └── index.html 前端展示页面 ```

注意: templates 文件夹的名称必须是固定的,Flask会默认去这个目录下寻找HTML文件。

三、数据库设计与初始化

养老保险档案管理核心在于数据的存储。我们将使用SQLite数据库,它无需单独安装数据库服务,以文件形式存在,非常适合轻量级应用。我们需要设计一张表来存储参保人员的信息。

1. 设计数据表字段

我们需要记录以下关键字段:

2. 编写初始化脚本

在项目根目录下创建 init_db.py 文件,并粘贴以下代码。这段代码将自动创建一个名为 pension.db 的数据库文件并建立数据表。

```python import sqlite3 def init_db(): 连接数据库(如果不存在会自动创建) conn = sqlite3.connect('pension.db') cursor = conn.cursor() 创建档案表 cursor.execute(''' CREATE TABLE IF NOT EXISTS records ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, id_card TEXT NOT NULL UNIQUE, phone TEXT, join_date TEXT, pension_type TEXT, status TEXT ) ''') conn.commit() conn.close() print("数据库初始化完成,已生成 pension.db 文件。") if __name__ == '__main__': init_db() ```

零基础手把手搭建养老保险档案管理软件

保存文件后,在命令行中进入项目目录,执行以下命令完成数据库的创建:

```bash python init_db.py ```

四、后端核心逻辑实现

接下来编写 app.py,这是整个系统的“大脑”。它负责处理网页的请求、读写数据库以及返回数据给前端。

请将以下完整代码复制到 app.py 文件中:

```python from flask import Flask, render_template, request, redirect, url_for, flash import sqlite3 from datetime import datetime app = Flask(__name__) app.secret_key = 'dev_secret_key_for_flash_messages' 用于Flash消息提示 数据库连接函数 def get_db_connection(): conn = sqlite3.connect('pension.db') conn.row_factory = sqlite3.Row 允许通过列名访问数据 return conn 首页:展示所有档案 @app.route('/') def index(): conn = get_db_connection() 按ID倒序查询,最新添加的在最前 cursor = conn.execute('SELECT FROM records ORDER BY id DESC') records = cursor.fetchall() conn.close() return render_template('index.html', records=records) 添加档案 @app.route('/add', methods=['POST']) def add(): name = request.form['name'] id_card = request.form['id_card'] phone = request.form['phone'] join_date = request.form['join_date'] pension_type = request.form['pension_type'] status = request.form['status'] if not name or not id_card: flash('姓名和身份证号不能为空!') return redirect(url_for('index')) try: conn = get_db_connection() conn.execute('INSERT INTO records (name, id_card, phone, join_date, pension_type, status) VALUES (?, ?, ?, ?, ?, ?)', (name, id_card, phone, join_date, pension_type, status)) conn.commit() conn.close() flash('档案添加成功!') except sqlite3.IntegrityError: flash('错误:该身份证号已存在档案库中!') return redirect(url_for('index')) 删除档案 @app.route('/delete/') def delete(record_id): conn = get_db_connection() conn.execute('DELETE FROM records WHERE id = ?', (record_id,)) conn.commit() conn.close() flash('档案已删除。') return redirect(url_for('index')) 编辑档案 - 简单实现为更新状态 @app.route('/update_status/', methods=['POST']) def update_status(record_id): new_status = request.form['status'] conn = get_db_connection() conn.execute('UPDATE records SET status = ? WHERE id = ?', (new_status, record_id)) conn.commit() conn.close() flash('状态更新成功。') return redirect(url_for('index')) if __name__ == '__main__': app.run(debug=True, port=5000) ```

五、前端页面模板开发

为了实现用户交互,我们需要在 templates/index.html 中编写前端代码。这里使用原生HTML结合Bootstrap(通过CDN引入)来快速构建美观的界面,并使用Jinja2模板语法来展示后端传递的数据。

请将以下代码完整复制到 templates/index.html 中:

```html 养老保险档案管理系统

养老保险档案管理系统

{% with messages = get_flashed_messages() %} {% if messages %} {% for message in messages %} {% endfor %} {% endif %} {% endwith %}
录入新档案
{% if records %} {% for record in records %} {% endfor %} {% else %} {% endif %}
ID 姓名 身份证号 联系电话 参保日期 保险类型 状态 操作
{{ record.id }} {{ record.name }} {{ record.id_card }} {{ record.phone }} {{ record.join_date }} {{ record.pension_type }}
删除
暂无档案数据,请在上方添加。
```

六、系统运行与功能测试

代码编写完成后,最后一步是启动系统并进行实际操作测试。

1. 启动Web服务

在命令行中确保当前目录在项目根目录下,输入以下命令启动Flask内置服务器:

```bash python app.py ```

当终端出现 Running on http://127.0.0.1:5000 提示时,说明服务已成功启动。

2. 访问系统与录入测试

打开浏览器,在地址栏输入 http://127.0.0.1:5000。你将看到一个包含表格和录入框的页面。

测试步骤:

  1. 在“录入新档案”区域,输入姓名:张三,身份证号:110101199001011234,选择当前日期和保险类型,点击添加档案。页面下方表格应立即显示该条数据。
  2. 测试身份证唯一性校验:尝试再次输入相同的身份证号,点击添加。页面顶部应弹出红色错误提示“该身份证号已存在档案库中”。
  3. 测试状态修改:在表格中找到“张三”的记录,点击状态下拉框,将其从“正常参保”改为“已退休”。页面会自动刷新并保存新状态。
  4. 测试删除功能:点击右侧红色的“删除”按钮,确认弹窗后,该行数据应被移除。

3. 数据持久化验证

关闭命令行窗口(停止服务),然后重新运行 python app.py。刷新浏览器页面,刚才录入的数据依然存在,证明SQLite数据库已成功保存数据,系统开发完成。

档案制度建设试行实施经验:从零到一的实战指南与避坑要点
档案制度建设试行实施经验:从零到一的实战指南与避坑要点
档案管理看似枯燥,却直接影响组织运营效率与合规安全。本文摒弃空谈理论,直接分享一套经过验证的档案制度建设从试行到落地的实战经验。你将清晰了解制度设计的关键框架、试点部门的选取策略、执行过程中的常见阻力...
2026年08月20日 08:40:08
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818