# 后端系统设置指南 ## 登录前后的功能差别 ### 登录前 - 只能查看公开内容 - 受保护内容显示"登录后查看"遮罩 - 无法下载受保护资源 - 无法查看详细统计数据 - 导航栏显示"登录"按钮 ### 登录后 - 可以查看所有内容,包括受保护内容 - 可以下载受保护资源 - 可以查看详细统计数据(文章数、资源数、下载量等) - 导航栏显示用户名和"退出"按钮 - 可以访问内部文章和资料 ## 快速开始 ### 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/` - 下载资源文件 ## 内容管理系统(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. **扩展性** - 可以添加更多用户角色 - 可以实现更细粒度的权限控制 - 可以集成第三方认证服务