更新 views.py

master
wangsiyuan 2023-12-28 16:34:24 +08:00
parent 1ed2e473e1
commit e11cddd05e
1 changed files with 48 additions and 13 deletions

View File

@ -1,7 +1,9 @@
from flask import Flask, request, redirect, url_for, render_template, session, jsonify from flask import Flask, redirect, url_for, render_template, session, jsonify
from db.connection import MySQLPool from db.connection import MySQLPool
from config import SECRET_KEY from config import SECRET_KEY
from db.database_manager import DatabaseManager from db.database_manager import DatabaseManager
from models.Student import Student
from models.Teacher import Teacher
from models.User import User from models.User import User
app = Flask(__name__, static_folder='static') app = Flask(__name__, static_folder='static')
@ -24,17 +26,29 @@ def index():
def register(): def register():
if request.method == 'POST': if request.method == 'POST':
data = request.get_json() data = request.get_json()
# print(data) print(data)
user = User( user = User(
nickname=data.get('nickname'), name=data.get('name'),
phone_number=data.get('cellphone'), # 确保JSON中的键和这里匹配 number=data.get('number'),
password=data.get('password'), password=data.get('password'), # 确保密码安全处理
identity=data.get('identity'), status=True
status=True # 或者根据你的逻辑设置
) )
identity = check_identity(user.number)
db_manager = DatabaseManager() db_manager = DatabaseManager()
if not db_manager.user_exists(user.phone_number): if not db_manager.user_exists(user.number):
db_manager.insert_user(user) db_manager.insert_user(user)
user_id = db_manager.query_user_id(user.number)
if identity == "teacher":
teacher = Teacher(name=user.name, teacher_number=user.number, user_id=user_id)
db_manager.insert_teacher(teacher)
else: # assumed student
class_name = user.number[1:5] + "" + user.number[5:7] + ""
major_id = user.number[7:10]
student = Student(student_name=user.name, student_number=user.number, user_id=user_id,
major_id=major_id,
class_name=class_name)
print(student)
db_manager.insert_student(student)
return jsonify({"success": True, "message": "注册成功"}) return jsonify({"success": True, "message": "注册成功"})
else: else:
return jsonify({"success": False, "message": "用户已存在"}) return jsonify({"success": False, "message": "用户已存在"})
@ -42,23 +56,36 @@ def register():
return render_template('register.html') return render_template('register.html')
def check_identity(number):
identity = None
if number[0] == 'G':
identity = "teacher"
return identity
else:
identity = "student"
return identity
@app.route('/login', methods=['GET', 'POST']) @app.route('/login', methods=['GET', 'POST'])
def login(): def login():
if request.method == 'GET': if request.method == 'GET':
return render_template('login.html') return render_template('login.html')
else: else:
phone_number = request.form['username'] print(request.form)
number = request.form['number']
password = request.form['password'] password = request.form['password']
print(number, password)
db_manager = DatabaseManager() db_manager = DatabaseManager()
result = db_manager.valid_login(phone_number, password) # 获取验证结果 result = db_manager.valid_login(number, password) # 获取验证结果
# 确保用户已验证且活跃(未被禁用) # 确保用户已验证且活跃(未被禁用)
if result['valid'] and result['status'] == 1: if result['valid'] and result['status'] == 1:
# 登录成功 # 登录成功
session['username'] = phone_number session['username'] = number
session['role'] = result['identity'] # 设置用户角色 session['role'] = check_identity(number)
session['nickname'] = result['nickname'] print(session['role'])
session['name'] = result['name']
return jsonify(success=True, message="登录成功") return jsonify(success=True, message="登录成功")
elif not result['status']: elif not result['status']:
# 用户被禁用的情况 # 用户被禁用的情况
@ -154,6 +181,14 @@ def get_course_type():
return jsonify(course_info) return jsonify(course_info)
@app.route('/api/get-announcement-info', methods=['GET'])
def get_announcement_info():
db_manager = DatabaseManager()
announcement_info = db_manager.get_announcement_info()
return jsonify(course_info)
@app.route('/attendance', methods=['GET', 'POST']) @app.route('/attendance', methods=['GET', 'POST'])
def course_checkin(): def course_checkin():
return render_template('attendance.html') return render_template('attendance.html')