86 lines
2.5 KiB
Python
86 lines
2.5 KiB
Python
from flask import Flask, request, redirect, url_for, render_template, session, jsonify
|
||
from db.connection import MySQLPool
|
||
from config import SECRET_KEY
|
||
from db.database_manager import DatabaseManager
|
||
from models.User import User
|
||
|
||
app = Flask(__name__)
|
||
app.secret_key = SECRET_KEY # 从配置文件设置
|
||
|
||
# 一个全局MySQLPool对象,用于管理数据库连接
|
||
mysql_pool = MySQLPool()
|
||
|
||
|
||
@app.route('/')
|
||
def index():
|
||
# 如果用户已登录,则重定向到主页;否则,重定向到登录页面
|
||
if 'username' in session:
|
||
return redirect(url_for('home'))
|
||
else:
|
||
return render_template('login.html')
|
||
|
||
|
||
@app.route('/register', methods=['GET', 'POST'])
|
||
def register():
|
||
if request.method == 'POST':
|
||
data = request.get_json()
|
||
# print(data)
|
||
user = User(
|
||
nickname=data.get('nickname'),
|
||
phone_number=data.get('cellphone'), # 确保JSON中的键和这里匹配
|
||
password=data.get('password'),
|
||
identity=data.get('identity'),
|
||
is_active=True # 或者根据你的逻辑设置
|
||
)
|
||
db_manager = DatabaseManager()
|
||
if not db_manager.user_exists(user.phone_number):
|
||
db_manager.insert_user(user)
|
||
return jsonify({"success": True, "message": "注册成功"})
|
||
else:
|
||
return jsonify({"success": False, "message": "用户已存在"})
|
||
else:
|
||
return render_template('register.html')
|
||
|
||
|
||
@app.route('/login', methods=['GET', 'POST'])
|
||
def login():
|
||
if request.method == 'GET':
|
||
return render_template('login.html')
|
||
else:
|
||
phone_number = request.form['username']
|
||
password = request.form['password']
|
||
db_manager = DatabaseManager()
|
||
# 验证用户名和密码...
|
||
if db_manager.valid_login(phone_number, password):
|
||
# 登录成功
|
||
session['username'] = phone_number
|
||
return jsonify(success=True, message="登录成功")
|
||
else:
|
||
# 登录失败
|
||
return jsonify(success=False, message="无效的用户名或密码")
|
||
|
||
|
||
@app.route('/forget', methods=['GET', 'POST'])
|
||
def forget_page():
|
||
return render_template('forget.html')
|
||
|
||
|
||
@app.route('/home')
|
||
def home():
|
||
if 'username' in session:
|
||
return render_template('home.html')
|
||
else:
|
||
return redirect("login")
|
||
|
||
|
||
@app.route('/logout')
|
||
def logout():
|
||
# 清除session中的所有信息
|
||
session.clear()
|
||
# 返回一个响应,或者重定向到登录页面
|
||
return redirect('/login')
|
||
|
||
|
||
if __name__ == '__main__':
|
||
app.run(debug=True)
|