#!/usr/bin/env python # -*- coding: utf-8 -*- """ 测试数据库连接和登录功能 """ import os import sys sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from app import create_app, db from app.models.admin import Admin def test_database(): """测试数据库连接""" print("=== 测试数据库连接 ===") try: app = create_app('production') with app.app_context(): # 测试数据库连接 print(f"数据库URI: {app.config.get('SQLALCHEMY_DATABASE_URI')}") # 尝试查询用户 admin_count = Admin.query.count() print(f"管理员用户总数: {admin_count}") # 查看所有用户 admins = Admin.query.all() for admin in admins: print(f"用户: {admin.username}, 状态: {admin.is_active}, 角色: {admin.role}") # 测试特定用户 admin = Admin.query.filter_by(username='admin').first() if admin: print(f"找到admin用户: {admin.username}") print(f"密码哈希存在: {bool(admin.password_hash)}") print(f"用户状态: is_active={admin.is_active}, role={admin.role}") # 测试密码验证 test_passwords = ['admin123', 'admin', '123456'] for pwd in test_passwords: result = admin.check_password(pwd) print(f"密码 '{pwd}' 验证结果: {result}") else: print("未找到admin用户") # 创建默认用户 print("创建默认admin用户...") new_admin = Admin( username='admin', email='admin@example.com', role=1, # 超级管理员 status=1 # 激活状态 ) new_admin.set_password('admin123') db.session.add(new_admin) db.session.commit() print("默认admin用户创建成功") print("数据库连接测试完成") except Exception as e: print(f"数据库连接错误: {str(e)}") import traceback traceback.print_exc() if __name__ == '__main__': test_database()