Python快速开发档案质量培训报名系统全流程
一、开发环境准备与项目初始化
在开始构建档案质量培训报名系统之前,我们需要确保本地开发环境已经配置妥当。本系统将采用 Python 轻量级 Web 框架 Flask 进行开发,数据库选用 SQLite,因其无需额外配置服务,非常适合快速构建原型和小型应用。
请在终端中执行以下命令,检查 Python 版本是否为 3.7 及以上:
```bash python --version ```确认版本无误后,我们在本地创建一个项目文件夹,并进入该目录:
```bash mkdir archive_training_system cd archive_training_system ```为了隔离项目依赖,避免污染全局环境,必须创建一个虚拟环境。在项目根目录下执行:
```bash python -m venv venv ```创建完成后,根据操作系统激活虚拟环境。Windows 用户执行:
```bash venv\Scripts\activate ```MacOS 或 Linux 用户执行:
```bash source venv/bin/activate ```激活成功后,命令行前缀会出现 (venv) 标识。接下来安装 Flask 框架:
```bash pip install flask ```二、数据库设计与初始化脚本
报名系统的核心数据是学员信息。我们需要设计一张表来存储这些数据。表结构应包含以下字段:自增主键 ID、学员姓名、所属单位、联系电话、电子邮箱以及报名时间。 SQLite 数据库文件将命名为 training.db。
在项目根目录下创建一个名为 init_db.py 的文件,用于初始化数据库结构。该脚本将连接数据库,并创建名为 registrations 的数据表。
以下是完整的初始化代码,请直接复制并保存:
```python import sqlite3 def init_db(): 连接到 SQLite 数据库文件,如果不存在会自动创建 conn = sqlite3.connect('training.db') cursor = conn.cursor() 创建 registrations 表的 SQL 语句 包含:id(主键), name(姓名), unit(单位), phone(电话), email(邮箱), created_at(报名时间) create_table_sql = """ CREATE TABLE IF NOT EXISTS registrations ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, unit TEXT NOT NULL, phone TEXT NOT NULL, email TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); """ cursor.execute(create_table_sql) conn.commit() conn.close() print("数据库初始化完成,表 'registrations' 已创建。") if __name__ == '__main__': init_db() ```保存文件后,在终端执行该脚本以生成数据库文件:
```bash python init_db.py ``>
执行后,项目目录下会出现 training.db 文件,表示数据库环境已就绪。
三、后端核心逻辑开发
接下来编写后端主程序 app.py。该文件负责处理 Web 请求、路由分发以及与数据库的交互。我们需要实现三个主要功能:显示报名页面、处理表单提交数据、显示已报名人员列表。
在项目根目录下创建 app.py 文件,并写入以下代码:
```python from flask import Flask, render_template, request, redirect, url_for, flash import sqlite3 app = Flask(__name__) app.secret_key = 'dev_secret_key_for_flash_messages' 用于 Flash 消息提示的密钥 辅助函数:获取数据库连接 def get_db_connection(): conn = sqlite3.connect('training.db') 设置 row_factory 为 sqlite3.Row,这样可以通过列名访问数据 conn.row_factory = sqlite3.Row return conn 路由:首页(报名表单) @app.route('/') def index(): return render_template('index.html') 路由:处理报名提交 @app.route('/submit', methods=['POST']) def submit(): 获取表单数据 name = request.form['name'] unit = request.form['unit'] phone = request.form['phone'] email = request.form['email'] 简单的后端校验 if not name or not phone: flash('姓名和电话为必填项!') return redirect(url_for('index')) try: conn = get_db_connection() cursor = conn.cursor() 插入数据 cursor.execute('INSERT INTO registrations (name, unit, phone, email) VALUES (?, ?, ?, ?)', (name, unit, phone, email)) conn.commit() conn.close() flash('报名成功!') except Exception as e: flash(f'发生错误:{str(e)}') return redirect(url_for('index')) return redirect(url_for('list')) 路由:显示报名列表 @app.route('/list') def list(): conn = get_db_connection() 查询所有报名记录,按时间倒序排列 registrations = conn.execute('SELECT FROM registrations ORDER BY created_at DESC').fetchall() conn.close() return render_template('list.html', registrations=registrations) if __name__ == '__main__': 启动服务,开启 Debug 模式方便调试 app.run(debug=True, port=5000) ```四、前端页面模板构建
Flask 默认在 templates 文件夹中查找 HTML 模板。请在项目根目录下创建 templates 文件夹,并在其中创建两个 HTML 文件:index.html(报名页)和 list.html(列表页)。为了保持界面整洁,我们将引入 Bootstrap 5 的 CDN 样式。
首先创建 templates/index.html:
```html档案质量培训报名入口
接着创建 templates/list.html 用于展示数据:
```html档案质量培训已报名名单
| ID | 姓名 | 所属单位 | 联系电话 | 电子邮箱 | 报名时间 |
|---|---|---|---|---|---|
| {{ reg.id }} | {{ reg.name }} | {{ reg.unit }} | {{ reg.phone }} | {{ reg.email }} | {{ reg.created_at }} |
| 暂无报名数据 | |||||
五、系统运行与功能验证
代码编写完成后,即可启动系统进行测试。确保终端仍然处于虚拟环境激活状态,并且位于项目根目录下。执行以下命令启动 Flask 应用:
```bash python app.py ```终端将显示服务启动信息,通常如下:
```text Serving Flask app 'app' Debug mode: on Running on http://127.0.0.1:5000 ```此时,打开浏览器,在地址栏输入 http://127.0.0.1:5000。你将看到档案质量培训报名表单页面。
测试步骤如下:
- 填写表单: 输入姓名、单位、电话和邮箱。尝试故意留空必填项,验证浏览器的 HTML5 验证是否生效。
- 提交数据: 点击“提交报名”按钮。页面应跳转至列表页,并显示“报名成功!”的提示信息。
- 查看列表: 在列表页检查刚才录入的数据是否正确显示,且按照时间倒序排列。
- 多轮测试: 点击“返回继续报名”,重复录入几条不同的数据,确认数据库写入正常且无乱码。
至此,一个基于 Flask 和 SQLite 的档案质量培训报名系统已完全落地。该系统具备数据接收、持久化存储和列表展示功能,代码结构清晰,可根据后续需求轻松扩展字段或对接其他数据库。