# 技术论坛与技术分享网站 > 技术交流、工具分享、问答讨论社区 ## 功能特点 ### 📝 技术交流 - 发布技术讨论帖子 - 评论回复互动 - 点赞收藏 - 标签分类 ### 🔧 工具分享 - 创建工具/框架分享主题 - 子主题分支讨论 - 问题追问功能 - 关注感兴趣的主题 ### 👤 用户系统 - 用户名注册 - 邮箱(必填) - 手机号(可选) - 密码确认 ### 🔐 后台管理 - 管理员登录验证 - 用户管理 - 帖子管理(置顶、删除) - 主题管理 - 数据统计 ## 快速开始 ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 配置(可选) 可以创建 `config.local.py` 覆盖默认配置: ```python # 管理员账户 ADMIN_USERNAME = 'your_admin' ADMIN_PASSWORD = 'your_password' # 或使用环境变量 export TECH_FORUM_ADMIN_USER='your_admin' export TECH_FORUM_ADMIN_PASS='your_password' ``` ### 启动主服务 ```bash python backend/app.py ``` 访问地址: http://localhost:19004 ### 启动后台管理 ```bash python admin/app.py ``` 后台地址: http://localhost:19005 默认账号: admin / admin123 ## 项目结构 ``` tech-forum/ ├── config.py # 配置文件 ├── models.py # 数据库模型(SQLite) ├── backend/ │ └── app.py # Flask后端API ├── frontend/ │ ├── index.html # 首页 │ ├── login.html # 登录 │ ├── register.html # 注册 │ ├── create.html # 发帖 │ ├── post.html # 帖子详情 │ ├── topic.html # 主题详情 │ └── user.html # 用户主页 ├── admin/ │ ├── app.py # 后台管理(带登录验证) │ └── templates/ │ ├── index.html # 仪表盘 │ ├── login.html # 管理员登录 │ ├── users.html # 用户管理 │ ├── posts.html # 帖子管理 │ └── topics.html # 主题管理 ├── data/ │ └ tech_forum.db # SQLite数据库(自动创建) └── uploads/ # 上传文件 ``` ## API接口 ### 用户认证 - POST /api/register - 注册 - POST /api/login - 登录 - GET /api/user - 获取当前用户 ### 帖子 - GET /api/posts - 获取帖子列表 - POST /api/posts - 发布帖子 - GET /api/posts/:id - 获取帖子详情 - POST /api/posts/:id/reply - 回复帖子 - POST /api/posts/:id/like - 点赞 ### 主题 - GET /api/topics - 获取主题列表 - POST /api/topics - 创建主题 - GET /api/topics/:id - 获取主题详情 - POST /api/topics/:id/subtopic - 添加子主题 - POST /api/topics/:id/question - 提问 - POST /api/topics/:id/question/:qid/answer - 回答问题 - POST /api/topics/:id/follow - 关注主题 ### 其他 - GET /api/tags - 获取热门标签 - GET /api/search - 搜索 ## 安全改进 ### v1.1.0 重构内容 1. **后台登录验证** - 所有后台API需要管理员登录 - Session + JWT双重验证 - 未登录自动跳转登录页 2. **配置文件分离** - 敏感信息移至 `config.py` - 支持环境变量覆盖 - SECRET_KEY 自动随机生成 3. **SQLite数据库** - 替换JSON文件存储 - 解决并发写入问题 - 数据关系完整性 4. **API密钥保护** - LLM密钥从代码移至配置 - 支持环境变量设置 ## 版本历史 ### v1.1.0 (2026-04-12) - 重构:后台添加登录验证 - 重构:JSON存储改为SQLite数据库 - 重构:API密钥移至配置文件 - 修复:SECRET_KEY改为随机生成 - 新增:管理员登录页面 ### v0.1.0 (2026-04-08) - 初始版本 - 技术交流帖子功能 - 工具分享主题功能 - 用户注册登录 - 评论回复点赞 ## License MIT