一、核心环境准备
仅支持Windows/macOS/Linux系统,无复杂配置要求
1.1 安装稳定版Python
1. 下载对应版本安装包:Windows用户点击链接:https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe;macOS用户点击:https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg;Debian/Ubuntu系Linux执行命令:sudo apt-get install python3.11 python3-pip
2. Windows安装时务必勾选「Add Python to PATH」,其他系统直接运行安装包即可
3. 验证安装:打开命令行(Win按Win+R输入cmd,macOS/Linux打开终端),执行命令:macOS/Linux用python3 --version,Windows用python --version,输出Python 3.11.4则成功
1.2 安装项目依赖包
命令行执行以下命令,自动安装兼容版本的Web框架和数据库工具:
pip install flask==2.3.3 flask-sqlalchemy==3.0.5
禁止省略版本号,避免兼容报错
二、项目初始化与核心代码编写
2.1 创建项目目录
命令行执行命令,创建并进入项目目录:
mkdir teaching_archive && cd teaching_archive
此步骤必须执行,否则数据库文件会生成在非预期位置
2.2 编写核心逻辑文件
在项目目录新建app.py,复制以下完整代码:
```python
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
初始化Flask应用
app = Flask(__name__)
配置SQLite数据库,自动生成archive.db文件
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///archive.db'
关闭修改跟踪警告
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
绑定数据库到应用
db = SQLAlchemy(app)
定义教学档案数据模型
class Archive(db.Model):
id = db.Column(db.Integer, primary_key=True)
student_id = db.Column(db.String(20), unique=True, nullable=False) 学生ID唯一标识
name = db.Column(db.String(50), nullable=False) 学生姓名
class_name = db.Column(db.String(30), nullable=False) 所在班级
archive_type = db.Column(db.String(20), nullable=False) 档案类型(学籍/成绩/奖惩)
create_time = db.Column(db.DateTime, default=datetime.utcnow) 自动生成创建时间
首次运行需创建数据库表
with app.app_context():
db.create_all()
首页:展示所有档案
@app.route('/')
def index():
archives = Archive.query.order_by(Archive.create_time.desc()).all()
return render_template('index.html', archives=archives)
添加档案接口
@app.route('/add', methods=['POST'])
def add_archive():
if request.method == 'POST':
new_record = Archive(
student_id=request.form['student_id'],
name=request.form['name'],
class_name=request.form['class_name'],
archive_type=request.form['archive_type']
)
db.session.add(new_record)
db.session.commit()
return redirect(url_for('index'))
删除档案接口
@app.route('/delete/
')
def delete_archive(archive_id):
record = Archive.query.get_or_404(archive_id)
db.session.delete(record)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
```
2.3 编写前端模板文件

在项目目录新建templates文件夹,再在其中新建index.html,复制以下完整代码:
```html
教学档案管理系统
教学档案管理
| 序号 |
学生ID |
姓名 |
班级 |
档案类型 |
创建时间 |
操作 |
{% for item in archives %}
| {{ item.id }} |
{{ item.student_id }} |
{{ item.name }} |
{{ item.class_name }} |
{{ item.archive_type }} |
{{ item.create_time.strftime('%Y-%m-%d %H:%M') }} |
删除 |
{% endfor %}
```
三、本地运行与功能验证
3.1 启动服务
在teaching_archive目录下,执行命令:Windows用python app.py,macOS/Linux用python3 app.py,输出「Running on http://127.0.0.1:5000」则启动成功
若提示端口占用,修改最后一行代码为app.run(debug=True, port=5001)即可换端口
3.2 核心功能测试
1. 打开浏览器访问:http://127.0.0.1:5000
2. 添加档案:填写学生ID(如2024001)、姓名(张三)、班级(初一1班)、选择「学籍档案」,点击「添加档案」,列表立即显示该条记录
3. 删除档案:点击对应记录的「删除」链接,记录会从列表消失,验证操作生效
四、可选零门槛功能扩展
4.1 增加按学生ID查询
在index.html的添加表单上方添加搜索栏:
在app.py中新增查询路由:
```python
@app.route('/search', methods=['POST'])
def search_record():
search_id = request.form['search_id']
results = Archive.query.filter_by(student_id=search_id).order_by(Archive.create_time.desc()).all()
return render_template('index.html', archives=results)
```
4.2 导出档案为CSV
在app.py顶部导入csv模块,新增导出路由:
```python
import csv
from flask import Response
@app.route('/export')
def export_csv():
records = Archive.query.all()
def generate_csv():
yield ['学生ID', '姓名', '班级', '档案类型', '创建时间']
for rec in records:
yield [rec.student_id, rec.name, rec.class_name, rec.archive_type, rec.create_time.strftime('%Y-%m-%d %H:%M')]
return Response(generate_csv(), mimetype='text/csv', headers={'Content-Disposition': 'attachment;filename=teaching_archive.csv'})
```
在index.html表格下方添加链接:导出CSV