from app import create_app from app.models import db, User, Student from werkzeug.security import generate_password_hash def init_database(): """初始化数据库,修复密码哈希问题""" app = create_app() with app.app_context(): print("正在修复用户密码...") # 获取所有用户 users = User.query.all() for user in users: if user.student_number == 'admin': # 管理员密码设为 admin123 new_password = 'admin123' else: # 学生密码设为学号 new_password = user.student_number # 生成正确的密码哈希 user.password_hash = generate_password_hash(new_password) print(f"修复用户: {user.student_number}, 密码: {new_password}") try: db.session.commit() print("✅ 所有用户密码修复完成!") print("\n登录信息:") print("管理员 - 学号: admin, 密码: admin123") print("学生用户 - 学号: [学号], 密码: [学号]") except Exception as e: db.session.rollback() print(f"❌ 修复失败: {e}") if __name__ == '__main__': init_database()