主要改进: 🎨 UI优化 - 实现学而思风格的题目卡片设计 - 优化数学公式和坐标点显示格式 - 添加专业的选项和答案展示 - 改进响应式设计和交互体验 🔧 技术优化 - 修复图片关联算法,避免重复分配 - 智能图片与题目匹配算法 - 添加admin用户便捷登录功能 - 优化题目文本格式化 📊 功能增强 - 可折叠的答案解析区域 - 动态分值提取和显示 - 专业的数学符号高亮 - 子题清晰分隔显示 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
88 lines
2.7 KiB
Python
88 lines
2.7 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
创建管理员用户脚本
|
|
用于方便测试,创建用户名admin,密码admin的账户
|
|
"""
|
|
import sys
|
|
import os
|
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
from sqlalchemy import create_engine
|
|
from sqlalchemy.orm import sessionmaker
|
|
import bcrypt
|
|
|
|
# 数据库配置
|
|
SQLALCHEMY_DATABASE_URL = "sqlite:///./wordmaster.db"
|
|
engine = create_engine(SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False})
|
|
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
|
|
|
# 导入模型(这里直接定义,避免循环导入)
|
|
from sqlalchemy import Column, Integer, String, DateTime
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
from datetime import datetime
|
|
|
|
Base = declarative_base()
|
|
|
|
class User(Base):
|
|
__tablename__ = "users"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
username = Column(String, unique=True, index=True)
|
|
email = Column(String, unique=True, index=True)
|
|
hashed_password = Column(String)
|
|
created_at = Column(DateTime, default=datetime.utcnow)
|
|
|
|
def get_password_hash(password: str) -> str:
|
|
"""生成密码哈希"""
|
|
return bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
|
|
|
|
def create_admin_user():
|
|
"""创建管理员用户"""
|
|
# 创建数据库会话
|
|
db = SessionLocal()
|
|
|
|
try:
|
|
# 检查admin用户是否已存在
|
|
existing_admin = db.query(User).filter(User.username == "admin").first()
|
|
if existing_admin:
|
|
print("❌ admin用户已存在!")
|
|
# 更新密码为admin
|
|
existing_admin.hashed_password = get_password_hash("admin")
|
|
db.commit()
|
|
print("✅ 已更新admin用户密码为'admin'")
|
|
return
|
|
|
|
# 检查[email protected]邮箱是否已存在
|
|
existing_email = db.query(User).filter(User.email == "[email protected]").first()
|
|
if existing_email:
|
|
print("❌ [email protected]邮箱已被使用!")
|
|
return
|
|
|
|
# 创建admin用户
|
|
hashed_password = get_password_hash("admin")
|
|
admin_user = User(
|
|
username="admin",
|
|
email="[email protected]",
|
|
hashed_password=hashed_password
|
|
)
|
|
|
|
db.add(admin_user)
|
|
db.commit()
|
|
db.refresh(admin_user)
|
|
|
|
print("✅ 成功创建admin用户!")
|
|
print(" 用户名: admin")
|
|
print(" 密码: admin")
|
|
print(" 邮箱: [email protected]")
|
|
print(" ID:", admin_user.id)
|
|
|
|
except Exception as e:
|
|
print(f"❌ 创建admin用户失败: {e}")
|
|
db.rollback()
|
|
finally:
|
|
db.close()
|
|
|
|
if __name__ == "__main__":
|
|
print("🚀 开始创建admin用户...")
|
|
create_admin_user()
|
|
print("✨ 完成!") |