- 后台添加登录验证(Session + JWT双重验证) - JSON存储改为SQLite数据库,解决并发问题 - API密钥移至config.py,支持环境变量覆盖 - SECRET_KEY改为随机生成 - 新增管理员登录页面 - 修复README.md乱码 - 更新.gitignore忽略敏感配置
169 lines
3.7 KiB
Markdown
169 lines
3.7 KiB
Markdown
# 技术论坛与技术分享网站
|
||
|
||
> 技术交流、工具分享、问答讨论社区
|
||
|
||
## 功能特点
|
||
|
||
### 📝 技术交流
|
||
- 发布技术讨论帖子
|
||
- 评论回复互动
|
||
- 点赞收藏
|
||
- 标签分类
|
||
|
||
### 🔧 工具分享
|
||
- 创建工具/框架分享主题
|
||
- 子主题分支讨论
|
||
- 问题追问功能
|
||
- 关注感兴趣的主题
|
||
|
||
### 👤 用户系统
|
||
- 用户名注册
|
||
- 邮箱(必填)
|
||
- 手机号(可选)
|
||
- 密码确认
|
||
|
||
### 🔐 后台管理
|
||
- 管理员登录验证
|
||
- 用户管理
|
||
- 帖子管理(置顶、删除)
|
||
- 主题管理
|
||
- 数据统计
|
||
|
||
## 快速开始
|
||
|
||
### 安装依赖
|
||
|
||
```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 |