本项目是一个基于 Flask 框架的问答系统,实现了用户注册、登录、发布问题、回答问题等核心功能。项目采用 MySQL 数据库,包含完整的数据库设计、存储过程、触发器等高级特性。
| 文档 | 描述 | 适用人群 |
|---|---|---|
| require.md | 系统需求分析、功能模块设计 | 产品经理、开发者 |
| sql.md | 数据库表结构、存储过程、触发器 | 数据库开发者、DBA |
| config.md | 环境配置、部署指南 | 运维工程师、开发者 |
- ✅ Flask 基础功能学习与实践
- ✅ 完整的用户认证系统(注册、登录、邮箱验证)
- ✅ 问答系统核心功能
- ✅ 数据库高级特性应用
- ✅ 用户行为审计与日志记录
- ✅ 点赞功能与统计
- ✅ 数据库触发器实现自动化日志功能
-
用户管理模块
- 用户注册(邮箱验证码验证)
- 用户登录/退出
- 用户信息管理
-
问答模块
- 发布问题
- 回答问题
- 问题点赞功能
- 问题列表展示
-
审计模块
- 用户登录日志记录
- 回答操作审计日志
- 系统行为追踪
- 数据一致性保障
- 操作审计追踪
- 系统安全性
- 数据库性能优化
- 用户(User):用户基本信息
- 问题(Question):用户发布的问题
- 回答(Answer):对问题的回答
- 邮箱验证码(EmailCaptcha):注册验证码
- 问题点赞(QuestionLikes):点赞关系
- 用户登录日志(UserLoginLog):登录行为记录
- 回答审计日志(AnswerAuditLog):回答操作记录
| 表名 | 描述 | 主要字段 |
|---|---|---|
user |
用户表 | id, username, password, email, join_time, last_login_time |
question |
问题表 | id, title, content, create_time, author_id, likes_count |
answer |
回答表 | id, content, create_time, question_id, author_id |
email_captcha |
邮箱验证码表 | id, email, captcha, used, create_time |
question_likes |
问题点赞表 | id, question_id, user_id, create_time |
| 表名 | 描述 | 主要字段 |
|---|---|---|
user_login_log |
用户登录日志 | log_id, user_id, login_time, ip_address |
answer_audit_log |
回答审计日志 | log_id, answer_id, operation_type, old_content, new_content |
📋 详细信息: 完整的数据库设计和范式分析请参考 数据库设计文档
CALL sp_deactivate_old_unused_captchas(7); -- 失效7天前的验证码CALL sp_get_user_activity_summary(2); -- 获取用户ID为2的活跃度统计- 回答操作日志:自动记录回答的增删改操作
- 用户登录日志:自动记录用户登录行为
- 问题更新时间:有新回答时自动更新问题的最后修改时间
- 点赞数统计:点赞/取消点赞时自动更新问题点赞数
- 确保点赞数与实际点赞记录一致
- 保证审计日志的完整性
flask-basic/
├── README.md # 项目说明文档
├── require.md # 需求分析文档
├── sql.md # 数据库设计文档
├── config.md # 配置文件说明
├── flask_basic.sql # 数据库结构与数据
├── .gitignore # Git忽略文件配置
├── requirements.txt # Python依赖包(需要)
├── app.py # Flask应用主文件(需要)
├── models/ # 数据模型(需要)
├── templates/ # HTML模板(需要)
├── static/ # 静态文件(需要)
└── migrations/ # 数据库迁移文件
- 后端框架:Flask
- 数据库:MySQL 8.0
- ORM:Flask-SQLAlchemy
- 数据库迁移:Flask-Migrate
- 密码加密:Werkzeug Security
- 邮件发送:Flask-Mail
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
venv\Scripts\activate # Windows
source venv/bin/activate # Linux/Mac
# 安装依赖
pip install -r requirements.txt# 导入数据库结构
mysql -u root -p < flask_basic.sql⚙️ 配置指南: 详细的配置步骤请参考 配置文件说明
python app.py- 所有回答操作都有完整的审计日志
- 用户登录行为全程追踪
- 支持数据恢复和问题追溯
- 业务逻辑自动化处理
- 数据一致性自动保障
- 减少应用层代码复杂度
- 批量数据处理效率高
- 复杂查询逻辑封装
- 数据库层面的业务逻辑
- 符合数据库设计规范
- 完整的外键约束
- 合理的索引设计
- 添加用户权限管理
- 实现问题分类功能
- 添加搜索功能
- 实现消息通知系统
- 添加文件上传功能
- 实现API接口
本项目完整地展示了:
- Flask Web开发的核心概念
- MySQL数据库的高级特性应用
- 存储过程和触发器的实际使用
- 系统审计和日志记录的最佳实践
- 数据库设计的规范性和扩展性
这是一个很好的数据库项目实践案例,涵盖了从系统分析、概念模型设计到具体实现的完整流程。
📖 更多详细信息请查看相关文档: