init: TEALab 2025 实验室网站项目
从百度网盘 /apps/bypy/dofile/ 下载的完整项目结构,包含: - dofile/: Flask 后端(端口 5000)+ 静态前端(端口 6002) - officefile/: 项目相关文档 - .gitignore: Python venv / 日志 / 缓存 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
# 后端系统设置指南
|
||||
|
||||
## 登录前后的功能差别
|
||||
|
||||
### 登录前
|
||||
- 只能查看公开内容
|
||||
- 受保护内容显示"登录后查看"遮罩
|
||||
- 无法下载受保护资源
|
||||
- 无法查看详细统计数据
|
||||
- 导航栏显示"登录"按钮
|
||||
|
||||
### 登录后
|
||||
- 可以查看所有内容,包括受保护内容
|
||||
- 可以下载受保护资源
|
||||
- 可以查看详细统计数据(文章数、资源数、下载量等)
|
||||
- 导航栏显示用户名和"退出"按钮
|
||||
- 可以访问内部文章和资料
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 安装Python依赖
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
或使用虚拟环境:
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate # Linux/Mac
|
||||
# 或 venv\Scripts\activate # Windows
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### 2. 初始化数据库
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
python init_data.py
|
||||
```
|
||||
|
||||
这将创建:
|
||||
- 数据库表
|
||||
- 默认管理员账户:`admin` / `admin123`
|
||||
- 测试用户账户:`user` / `user123`
|
||||
- 示例受保护内容
|
||||
|
||||
### 3. 启动后端服务器
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
python app.py
|
||||
```
|
||||
|
||||
或使用启动脚本:
|
||||
|
||||
```bash
|
||||
./start_backend.sh
|
||||
```
|
||||
|
||||
服务器将在 `http://localhost:5000` 启动。
|
||||
|
||||
### 4. 启动前端服务器
|
||||
|
||||
在另一个终端:
|
||||
|
||||
```bash
|
||||
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. **团队管理**
|
||||
- 添加、编辑团队成员信息
|
||||
- 管理成员角色和排序
|
||||
|
||||
## 数据库
|
||||
|
||||
- 开发环境使用SQLite:`data/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. **扩展性**
|
||||
- 可以添加更多用户角色
|
||||
- 可以实现更细粒度的权限控制
|
||||
- 可以集成第三方认证服务
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user