|
|
|
@ -141,7 +141,33 @@ graph TD;
|
|
|
|
|
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)
|
|
|
|
|
Flask 应用实例:创建 Flask 应用实例。
|
|
|
|
|
CORS:启用跨域资源共享,允许前端与后端的跨域请求。
|
|
|
|
|
数据库配置:配置 SQLite 数据库及其连接字符串,设置 SQLAlchemy 的追踪修改功能为 False,以提高性能。
|
|
|
|
|
文件大小限制:限制上传文件大小为 64MB
|
|
|
|
|
#### 3.4.2
|
|
|
|
|
@app.route('/upload_students', methods=['POST'])
|
|
|
|
|
def upload_students():
|
|
|
|
|
# 文件检查和处理
|
|
|
|
|
...
|
|
|
|
|
df = pd.read_excel(file) # 读取 Excel 文件
|
|
|
|
|
# 校验列是否存在
|
|
|
|
|
...
|
|
|
|
|
for _, row in df.iterrows():
|
|
|
|
|
student = Student(name=row['姓名'], student_id=row['学号'])
|
|
|
|
|
db.session.add(student)
|
|
|
|
|
db.session.commit()
|
|
|
|
|
return jsonify(message="学生名单上传成功"), 200
|
|
|
|
|
文件上传:接收学生名单的 Excel 文件,检查文件格式和内容。
|
|
|
|
|
数据验证:确保文件包含必需的“姓名”和“学号”列。
|
|
|
|
|
数据存储:使用 Pandas 读取 Excel 文件并将学生信息存入数据库。
|
|
|
|
|
## 3.5 性能分析与改进(1分)
|
|
|
|
|
|
|
|
|
|
(描述改进思路,展示性能分析图和程序中消耗最大的函数)
|
|
|
|
|