Spaces:
Sleeping
Sleeping
系统模式 (systemPatterns.md)
系统架构
- 后端框架: FastAPI
- 数据库: SQLite
- API 路由: 使用
APIRouter进行模块化管理,所有 API 路径前缀为/api。 - CORS: 使用
CORSMiddleware处理跨域请求。 - 文件存储:
upload/images目录用于存储上传的图片文件,并通过/upload路径提供静态文件服务。
关键技术决策
- 用户 ID 生成: 采用
uuid.uuid4()生成全局唯一的用户 ID。 - 密码存储: 当前直接存储明文密码(待改进:未来应使用哈希加密存储)。
- 错误处理:
- 注册时用户名重复:返回
400 Bad Request。 - 登录时用户名或密码错误:返回自定义业务错误码
401。 - 其他内部服务器错误:返回
500 Internal Server Error。
- 注册时用户名重复:返回
- 数据库初始化: 在 FastAPI 应用启动时通过
@app.on_event("startup")钩子函数初始化 SQLite 数据库和users表。
组件关系
app.py: 包含 FastAPI 应用实例、CORS 配置、数据库初始化逻辑、API 路由定义。api_router: 负责定义/api/auth/register,/api/auth/login,/api/course/add,/api/course/details/{course_id}等接口。sqlite3: 用于与ai_edu.db数据库文件进行交互。pydantic.BaseModel: 用于定义请求体的模型(RegisterRequest,LoginRequest,Course)。
关键实现路径
- 用户注册: 接收
username和password-> 生成user_id(UUID) -> 插入users表 -> 返回成功响应或错误。 - 用户登录: 接收
username和password-> 查询users表验证凭据 -> 返回成功响应(包含user_id和username)或错误。 - 课程添加: 接收课程详情 (
title,description,price,duration_hours,level,page_info) -> 插入courses表(page_info存储为 JSON 字符串) -> 返回成功响应。 - 课程详情查询: 接收
course_id-> 查询courses表 -> 返回课程详情(page_info反序列化为 JSON 对象)或 404 错误。