from flask import request, jsonify, session, url_for, render_template, redirect from .config import db_manager import pymysql def connect(managerID, encrypted_password): conn = pymysql.connect(**db_manager) cursor = conn.cursor(pymysql.cursors.DictCursor) args = (managerID, encrypted_password) verify_sql = "SELECT COUNT(*) FROM Managers WHERE ID = %s AND `Password` = %s;" cursor.execute(verify_sql, args) verified = cursor.fetchone() cursor.close() conn.close() return verified['COUNT(*)'] > 0 def login(): if request.method == 'GET': return render_template('login.html') if request.method == 'POST': session.pop('user_id', None) managerID = request.json.get('username') encrypted_password = request.json.get('password') try: user = connect(managerID, encrypted_password) if not user: return jsonify({'message': '账号或密码错误'}), 401 session['user_id'] = managerID session.modified = True return jsonify({'redirect': url_for('index')}) except Exception as e: print(e) return jsonify({'message': '数据库错误,请稍后再试'}), 500 def logout(): session.clear() session.pop('user_id', None) return redirect(url_for('login'))