69 lines
2.3 KiB
Python
69 lines
2.3 KiB
Python
#!/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() |