Files
tech-forum/README.md
T

169 lines
3.7 KiB
Markdown
Raw Normal View History

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