|
|
|
@ -107,29 +107,29 @@ SQLAlchemy: ORM工具,用于与数据库交互(如果需要持久化存储
|
|
|
|
|
+-------------------+
|
|
|
|
|
|
|
|
|
|
## 3.3 说明算法的关键与关键实现部分流程图(2分)
|
|
|
|
|
### 3.3.1. 后端(Flask API)
|
|
|
|
|
Flask 应用 (app.py):
|
|
|
|
|
路由定义:
|
|
|
|
|
/students:处理学生的添加和获取。
|
|
|
|
|
/attendance:处理点名记录的添加和获取。
|
|
|
|
|
数据存储:
|
|
|
|
|
使用内存中的列表(students)和字典(attendance_records)来存储学生和点名记录,适合小型应用。
|
|
|
|
|
模型类:
|
|
|
|
|
Student、Class 和 AttendanceRecord 类用于定义数据结构和行为。
|
|
|
|
|
功能实现:
|
|
|
|
|
add_student(): 处理学生的添加请求。
|
|
|
|
|
get_students(): 获取所有学生信息。
|
|
|
|
|
take_attendance(): 处理点名请求,并更新学生的到场状态。
|
|
|
|
|
get_attendance(): 获取特定日期的出勤记录。
|
|
|
|
|
### 3.3.2. 前端(HTML + JavaScript)
|
|
|
|
|
用户界面 (index.html):
|
|
|
|
|
提供输入框和按钮用于添加学生、查看学生列表和点名。
|
|
|
|
|
使用 JavaScript 的 Fetch API 与后端进行交互。
|
|
|
|
|
功能实现:
|
|
|
|
|
addStudent(): 将新学生添加到系统。
|
|
|
|
|
loadStudents(): 获取并展示学生列表。
|
|
|
|
|
takeAttendance(): 处理点名过程,并提交到后端。
|
|
|
|
|
### 3.3.3流程图
|
|
|
|
|
#### 3.3.1. 后端(Flask API)
|
|
|
|
|
Flask 应用 (app.py):
|
|
|
|
|
路由定义:
|
|
|
|
|
/students:处理学生的添加和获取。
|
|
|
|
|
/attendance:处理点名记录的添加和获取。
|
|
|
|
|
数据存储:
|
|
|
|
|
使用内存中的列表(students)和字典(attendance_records)来存储学生和点名记录,适合小型应用。
|
|
|
|
|
模型类:
|
|
|
|
|
Student、Class 和 AttendanceRecord 类用于定义数据结构和行为。
|
|
|
|
|
功能实现:
|
|
|
|
|
add_student(): 处理学生的添加请求。
|
|
|
|
|
get_students(): 获取所有学生信息。
|
|
|
|
|
take_attendance(): 处理点名请求,并更新学生的到场状态。
|
|
|
|
|
get_attendance(): 获取特定日期的出勤记录。
|
|
|
|
|
#### 3.3.2. 前端(HTML + JavaScript)
|
|
|
|
|
用户界面 (index.html):
|
|
|
|
|
提供输入框和按钮用于添加学生、查看学生列表和点名。
|
|
|
|
|
使用 JavaScript 的 Fetch API 与后端进行交互。
|
|
|
|
|
功能实现:
|
|
|
|
|
addStudent(): 将新学生添加到系统。
|
|
|
|
|
loadStudents(): 获取并展示学生列表。
|
|
|
|
|
takeAttendance(): 处理点名过程,并提交到后端。
|
|
|
|
|
#### 3.3.3流程图
|
|
|
|
|
graph TD;
|
|
|
|
|
A[用户输入学生ID和姓名] --> B[发送 POST 请求到 /students API]
|
|
|
|
|
B --> C[后端接收请求并添加学生]
|
|
|
|
@ -139,15 +139,14 @@ graph TD;
|
|
|
|
|
F --> G[发送 POST 请求到 /attendance API]
|
|
|
|
|
G --> H[后端处理点名记录并更新学生状态]
|
|
|
|
|
H --> I[返回点名结果给前端更新显示状态]
|
|
|
|
|
|
|
|
|
|
## 3.4 贴出重要的/有价值的代码片段并解释(3分)
|
|
|
|
|
####3.4.1 Flask 应用及配置:
|
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
CORS(app) # 启用 CORS
|
|
|
|
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.db'
|
|
|
|
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
|
|
|
|
app.config['MAX_CONTENT_LENGTH'] = 64 * 1024 * 1024 # 最大上传文件限制
|
|
|
|
|
db = SQLAlchemy(app)
|
|
|
|
|
"app = Flask(__name__)
|
|
|
|
|
CORS(app) # 启用 CORS
|
|
|
|
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.db'
|
|
|
|
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
|
|
|
|
app.config['MAX_CONTENT_LENGTH'] = 64 * 1024 * 1024 # 最大上传文件限制
|
|
|
|
|
db = SQLAlchemy(app)"
|
|
|
|
|
Flask 应用实例:创建 Flask 应用实例。
|
|
|
|
|
CORS:启用跨域资源共享,允许前端与后端的跨域请求。
|
|
|
|
|
数据库配置:配置 SQLite 数据库及其连接字符串,设置 SQLAlchemy 的追踪修改功能为 False,以提高性能。
|
|
|
|
|