Files
SI_TEALab_2025_LabWebsite/dofile/BACKEND_SETUP.md
T
pengxiao a3eb5c7b2d init: TEALab 2025 实验室网站项目
从百度网盘 /apps/bypy/dofile/ 下载的完整项目结构,包含:
- dofile/: Flask 后端(端口 5000)+ 静态前端(端口 6002)
- officefile/: 项目相关文档
- .gitignore: Python venv / 日志 / 缓存

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-14 01:07:19 +08:00

3.5 KiB
Raw Blame History

后端系统设置指南

登录前后的功能差别

登录前

  • 只能查看公开内容
  • 受保护内容显示"登录后查看"遮罩
  • 无法下载受保护资源
  • 无法查看详细统计数据
  • 导航栏显示"登录"按钮

登录后

  • 可以查看所有内容,包括受保护内容
  • 可以下载受保护资源
  • 可以查看详细统计数据(文章数、资源数、下载量等)
  • 导航栏显示用户名和"退出"按钮
  • 可以访问内部文章和资料

快速开始

1. 安装Python依赖

cd backend
pip install -r requirements.txt

或使用虚拟环境:

cd backend
python3 -m venv venv
source venv/bin/activate  # Linux/Mac
# 或 venv\Scripts\activate  # Windows
pip install -r requirements.txt

2. 初始化数据库

cd backend
python init_data.py

这将创建:

  • 数据库表
  • 默认管理员账户:admin / admin123
  • 测试用户账户:user / user123
  • 示例受保护内容

3. 启动后端服务器

cd backend
python app.py

或使用启动脚本:

./start_backend.sh

服务器将在 http://localhost:5000 启动。

4. 启动前端服务器

在另一个终端:

cd dofile
python3 -m http.server 6002 --bind 0.0.0.0

测试登录功能

  1. 访问 http://localhost:6002/website.html
  2. 点击导航栏的"登录"按钮
  3. 使用以下账户登录:
    • 管理员:admin / admin123
    • 普通用户:user / user123
  4. 登录后,页面会显示受保护内容区块

API端点说明

认证相关

  • POST /api/auth/login - 用户登录
  • POST /api/auth/logout - 用户登出
  • GET /api/auth/check - 检查登录状态

内容管理

  • GET /api/cms/articles - 获取文章列表
  • GET /api/cms/resources - 获取资源列表
  • GET /api/cms/team - 获取团队成员

受保护内容

  • GET /api/protected-content - 获取受保护内容(需登录)
  • GET /api/stats - 获取统计数据(需登录)
  • GET /api/download/<id> - 下载资源文件

内容管理系统(CMS

管理员可以通过API管理内容:

  1. 文章管理

    • 创建、编辑、删除文章
    • 设置文章为受保护内容
    • 控制文章发布状态
  2. 资源管理

    • 上传文件资源
    • 设置资源为受保护
    • 跟踪下载次数
  3. 团队管理

    • 添加、编辑团队成员信息
    • 管理成员角色和排序

数据库

  • 开发环境使用SQLitedata/dael.db
  • 生产环境建议使用PostgreSQL
  • 数据库模型定义在 backend/models.py

文件结构

backend/
├── app.py              # Flask主应用
├── models.py           # 数据库模型
├── init_data.py        # 初始化脚本
├── requirements.txt    # Python依赖
├── routes/             # API路由
│   ├── auth.py        # 认证路由
│   ├── cms.py         # 内容管理路由
│   └── api.py         # 其他API路由
└── README.md           # 详细文档

data/
└── dael.db            # SQLite数据库

uploads/               # 上传文件存储

注意事项

  1. 安全性

    • 生产环境必须更改默认密码
    • 使用强SECRET_KEY
    • 启用HTTPS
    • 配置CORS策略
  2. 性能

    • 生产环境使用PostgreSQL
    • 配置文件上传大小限制
    • 使用CDN存储静态文件
  3. 扩展性

    • 可以添加更多用户角色
    • 可以实现更细粒度的权限控制
    • 可以集成第三方认证服务