手把手教你搭建档案信息化培训报名系统

一、环境准备与工具安装

在开始构建档案信息化培训报名系统之前,我们需要准备好开发环境。本系统采用 Python 语言编写,利用 Flask 轻量级框架作为后端,SQLite 作为数据库,无需配置复杂的服务器环境,适合快速落地。

1. 安装 Python

请确保你的电脑上安装了 Python 3.8 或更高版本。如果尚未安装,请访问 Python 官网下载对应操作系统的安装包:

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

安装时,务必勾选 "Add Python to PATH" 选项,以便在命令行中直接使用 Python 命令。

2. 安装 Flask 框架

打开终端(Windows 下为 CMD 或 PowerShell,Mac 下为 Terminal),输入以下命令安装 Flask 及其依赖:

```bash pip install flask ```

安装完成后,可以通过命令 python -m flask --version 验证是否安装成功。

二、项目目录结构设计

为了保持代码的清晰与可维护性,请在本地创建一个名为 archive_training_system 的文件夹,并在其中按照以下结构创建文件和目录:

```text archive_training_system/ │ ├── app.py 后端核心逻辑文件 ├── init_db.py 数据库初始化脚本 └── templates/ 前端模板文件夹(必须命名为 templates) ├── index.html 学员报名页面 └── admin.html 管理员查看数据页面 ```

三、数据库设计与初始化

档案信息化培训报名需要收集学员的关键信息。我们将使用 SQLite 数据库,创建一个名为 training.db 的数据文件,其中包含一张 registrations 表。

1. 创建初始化脚本 init_db.py

在项目根目录下创建 init_db.py 文件,并写入以下代码。该脚本将自动生成数据库表结构,包含学员姓名、单位、身份证号、联系电话、培训课程及报名时间。

```python import sqlite3 def init_db(): 连接到 SQLite 数据库文件(如果不存在会自动创建) conn = sqlite3.connect('training.db') cursor = conn.cursor() 创建报名表 cursor.execute(''' CREATE TABLE IF NOT EXISTS registrations ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, unit TEXT NOT NULL, id_card TEXT NOT NULL, phone TEXT NOT NULL, course_type TEXT NOT NULL, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ''') 提交事务并关闭连接 conn.commit() conn.close() print("数据库初始化完成,数据库文件为 training.db") if __name__ == '__main__': init_db() ```

2. 执行初始化

在终端中进入项目目录,执行以下命令生成数据库:

```bash python init_db.py ```

执行成功后,目录下会出现一个 training.db 文件。

四、后端核心逻辑开发

后端负责处理前端的请求,包括展示页面、接收报名数据以及将数据写入数据库。我们将所有逻辑封装在 app.py 中。

手把手教你搭建档案信息化培训报名系统

编写 app.py 文件

请将以下完整代码复制到 app.py 中。代码包含数据库连接函数、首页路由、报名提交路由以及管理员列表路由。

```python import sqlite3 from flask import Flask, render_template, request, redirect, url_for, flash app = Flask(__name__) app.secret_key = 'dev_secret_key_for_flash_messages' 用于Flash消息提示 数据库连接配置 DATABASE = 'training.db' def get_db_connection(): conn = sqlite3.connect(DATABASE) conn.row_factory = sqlite3.Row 允许通过列名访问数据 return conn 首页:展示报名表单 @app.route('/') def index(): 定义可选的培训课程列表 courses = ["档案数字化基础实操", "电子档案管理规范", "档案信息安全保密", "档案管理系统高级应用"] return render_template('index.html', courses=courses) 处理报名提交 @app.route('/submit', methods=['POST']) def submit(): name = request.form.get('name') unit = request.form.get('unit') id_card = request.form.get('id_card') phone = request.form.get('phone') course_type = request.form.get('course_type') 基础数据校验 if not all([name, unit, id_card, phone, course_type]): flash('所有字段均为必填项,请完整填写信息。', 'error') return redirect(url_for('index')) 简单的身份证号长度校验(示例) if len(id_card) != 18: flash('身份证号格式不正确,请输入18位身份证号。', 'error') return redirect(url_for('index')) try: conn = get_db_connection() cursor = conn.cursor() cursor.execute('INSERT INTO registrations (name, unit, id_card, phone, course_type) VALUES (?, ?, ?, ?, ?)', (name, unit, id_card, phone, course_type)) conn.commit() conn.close() flash('报名成功!请等待审核。', 'success') except Exception as e: flash(f'报名失败,系统错误:{str(e)}', 'error') return redirect(url_for('index')) 管理员页面:查看报名列表 @app.route('/admin') def admin(): conn = get_db_connection() 按时间倒序查询所有报名数据 registrations = conn.execute('SELECT FROM registrations ORDER BY create_time DESC').fetchall() conn.close() return render_template('admin.html', registrations=registrations) if __name__ == '__main__': 启动服务,开启调试模式方便开发 app.run(debug=True, port=5000) ```

五、前端页面开发

前端部分包含两个 HTML 文件。我们将使用 Bootstrap 5(通过 CDN 引入)来快速构建美观、响应式的界面,无需编写复杂的 CSS。

1. 学员报名页面

templates 文件夹下创建 index.html。该页面包含一个用于输入信息的表单,并使用 Flask 模板引擎渲染后端传递的错误或成功提示。

```html 档案信息化培训报名

档案信息化培训在线报名

{% with messages = get_flashed_messages(with_categories=true) %} {% if messages %} {% for category, message in messages %} {% endfor %} {% endif %} {% endwith %}
```

2. 管理员列表页面

templates 文件夹下创建 admin.html。该页面以表格形式展示所有提交的报名数据。

```html 报名管理后台

档案信息化培训报名名单

{% if registrations %} {% for reg in registrations %} {% endfor %} {% else %} {% endif %}
ID 姓名 工作单位 身份证号 联系电话 培训课程 报名时间
{{ reg.id }} {{ reg.name }} {{ reg.unit }} {{ reg.id_card }} {{ reg.phone }} {{ reg.course_type }} {{ reg.create_time }}
暂无报名数据
返回报名首页
```

六、系统运行与测试

至此,所有代码已编写完成。现在启动系统并进行实际操作测试。

1. 启动服务

在终端确保当前目录为项目根目录,执行以下命令启动 Flask 服务器:

```bash python app.py ```

当终端显示 Running on http://127.0.0.1:5000 时,说明启动成功。

2. 学员报名测试

打开浏览器,访问 http://127.0.0.1:5000。你将看到报名表单。

  • 输入测试数据:姓名“张三”,单位“某某档案馆”,身份证号“110101199001011234”,电话“13800138000”,课程选择“档案数字化基础实操”。
  • 点击提交报名
  • 页面应刷新并显示绿色的“报名成功!请等待审核。”提示。

3. 管理员数据查看测试

在浏览器地址栏输入 http://127.0.0.1:5000/admin

  • 你将看到一个包含刚才提交数据的表格。
  • 检查姓名、身份证号、课程等信息是否准确无误。
  • 检查报名时间是否自动生成。

4. 异常情况测试

  • 回到首页,尝试不填写某些必填项直接提交,应出现红色错误提示。
  • 尝试输入非18位身份证号,系统应拦截并提示格式错误。

通过以上步骤,你已经成功搭建了一个功能完整、包含数据校验和管理后台的档案信息化培训报名系统。该系统可以直接部署在内网环境中供单位内部使用,或通过 PythonAnywhere 等平台部署到公网。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

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

微信扫码关注安答联动

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

安答联动档案管理系统