更新 views.py
parent
1ed2e473e1
commit
e11cddd05e
61
app/views.py
61
app/views.py
|
|
@ -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')
|
||||||
|
|
|
||||||
Reference in New Issue