From 5cbc376865714762dabcecd31b70fca234a05bd4 Mon Sep 17 00:00:00 2001 From: ppfc5brxg <508446093@qq.com> Date: Tue, 8 Oct 2024 17:04:41 +0800 Subject: [PATCH] Delete 'app.py' --- app.py | 108 --------------------------------------------------------- 1 file changed, 108 deletions(-) delete mode 100644 app.py diff --git a/app.py b/app.py deleted file mode 100644 index 556b52d..0000000 --- a/app.py +++ /dev/null @@ -1,108 +0,0 @@ -from flask import Flask, request, jsonify, send_from_directory -import pandas as pd -import random -from flask_sqlalchemy import SQLAlchemy -from flask_cors import CORS - -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'] = 16 * 1024 * 1024 # 最大上传文件限制 -db = SQLAlchemy(app) - -class Student(db.Model): - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(100), nullable=False) - student_id = db.Column(db.String(20), unique=True, nullable=False) - points = db.Column(db.Float, default=0) - called_count = db.Column(db.Integer, default=0) - -@app.route('/upload_students', methods=['POST']) -def upload_students(): - if 'file' not in request.files: - return jsonify(message="未找到文件"), 400 - - file = request.files['file'] - - if file.filename == '': - return jsonify(message="没有选择文件"), 400 - - if not (file.filename.endswith('.xlsx') or file.filename.endswith('.xls')): - return jsonify(message="文件格式不支持,请上传 Excel 文件"), 400 - - try: - df = pd.read_excel(file) - - if '姓名' not in df.columns or '学号' not in df.columns: - return jsonify(message="Excel 文件必须包含 '姓名' 和 '学号' 列"), 400 - - for _, row in df.iterrows(): - student = Student(name=row['姓名'], student_id=row['学号']) - db.session.add(student) - db.session.commit() - return jsonify(message="学生名单上传成功"), 200 - - except Exception as e: - print(f"Error: {e}") - return jsonify(message=f"文件处理失败: {str(e)}"), 500 - -@app.route('/call_student', methods=['POST']) -def call_student(): - students = Student.query.all() - total_points = sum(student.points for student in students) - - if total_points == 0: - chosen_student = random.choice(students) - else: - probabilities = [(student, 1 - (student.points / total_points)) for student in students] - total_prob = sum(prob[1] for prob in probabilities) - chosen_student = random.choices( - [prob[0] for prob in probabilities], - weights=[prob[1] / total_prob for prob in probabilities] - )[0] - - chosen_student.called_count += 1 - chosen_student.points += 1 # 点到后增加积分 - db.session.commit() - - return jsonify(name=chosen_student.name, student_id=chosen_student.student_id, index=chosen_student.id) - -@app.route('/update_points', methods=['POST']) -def update_points(): - data = request.json - student = Student.query.get(data['index']) - answer = data['answer'] - - score = 0 - question = "1+1=?" # 假设提问内容 - - if answer == question: - score += 0.5 - result_message = "回答正确!" - else: - score -= 1 - result_message = "回答错误!" - - # 模拟准确回答的情况 - if "Ezio" == answer: - score += random.uniform(0.5, 3.0) - result_message = "回答非常正确!" - - student.points += score - db.session.commit() - - if student.points < 0: - student.points = 0 # 确保积分不为负值 - db.session.commit() - - return jsonify(points=student.points, message=result_message) - -@app.route('/') -def index(): - return send_from_directory('', 'index.html') - -if __name__ == '__main__': - with app.app_context(): - db.create_all() - app.run(debug=True)