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