技术论坛与技术分享网站

技术交流、工具分享、问答讨论社区

功能特点

📝 技术交流

  • 发布技术讨论帖子
  • 评论回复互动
  • 点赞收藏
  • 标签分类

🔧 工具分享

  • 创建工具/框架分享主题
  • 子主题分支讨论
  • 问题追问功能
  • 关注感兴趣的主题

👤 用户系统

  • 用户名注册
  • 邮箱(必填)
  • 手机号(可选)
  • 密码确认

🔐 后台管理

  • 管理员登录验证
  • 用户管理
  • 帖子管理(置顶、删除)
  • 主题管理
  • 数据统计

快速开始

安装依赖

pip install -r requirements.txt

配置(可选)

可以创建 config.local.py 覆盖默认配置:

# 管理员账户
ADMIN_USERNAME = 'your_admin'
ADMIN_PASSWORD = 'your_password'

# 或使用环境变量
export TECH_FORUM_ADMIN_USER='your_admin'
export TECH_FORUM_ADMIN_PASS='your_password'

启动主服务

python backend/app.py

访问地址: http://localhost:19004

启动后台管理

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

Description
技术论坛与技术分享网站 - 技术交流、工具分享、问答讨论
Readme 214 KiB
Languages
HTML 63.1%
Python 36.9%