Files
blogweb/SETUP_GUIDE.md
2025-12-26 13:42:22 +08:00

184 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目设置指南
## 快速开始
### 1. 安装后端依赖
```bash
pip install -r requirements.txt
```
### 2. 初始化数据库
```bash
# 从项目根目录运行
python -m app.db.init_db
```
如果需要重置数据库(⚠️ 会删除所有数据):
```bash
python -m app.db.init_db --reset
```
### 3. 配置环境变量
复制 `.env.example``.env`
```bash
# Windows
copy .env.example .env
# Linux/Mac
cp .env.example .env
```
编辑 `.env` 文件,修改以下配置:
```env
# 必须修改(生产环境)
SECRET_KEY=your-secret-key-change-in-production
# 可选:如果需要天气功能
OPENWEATHER_API_KEY=your-api-key
```
### 4. 启动后端服务
```bash
# 方式1:使用项目入口文件
python main.py
# 方式2:使用 uvicorn 直接运行
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
后端服务将在 `http://localhost:8000` 启动。
访问 API 文档:`http://localhost:8000/docs`
### 5. 安装前端依赖
```bash
cd frontend
npm install
```
### 6. 启动前端服务
```bash
npm run dev
```
前端服务将在 `http://localhost:5173` 启动。
## 项目结构说明
详细的项目结构说明请查看 `PROJECT_STRUCTURE.md`
## 重要变更
### 数据库初始化脚本位置调整
**旧位置**`backend/init_db.py`
**新位置**`backend/app/db/init_db.py`
**新的运行方式**
```bash
python -m app.db.init_db # 创建表
python -m app.db.init_db --reset # 重置数据库
```
### 旧文件清理
以下文件可以删除(代码已迁移到新位置):
- `backend/database.py` → 已迁移到 `backend/app/db/session.py`
- `backend/models.py` → 已迁移到 `backend/app/models/`
- `backend/init_db.py` → 已迁移到 `backend/app/db/init_db.py`
## 开发路线图
### ✅ 已完成
1. **阶段 1**:静态页面 + TodoList(无用户)
2. **阶段 2**:博客系统(公开)
3. **阶段 3**:用户系统 + 权限隔离
### 🚧 开发中
4. **阶段 4**:天气查询 + 个人记账本
5. **阶段 5**:书影音收藏站
6. **阶段 6**:聊天室(WebSocket + 文件上传
## 测试 API
### 1. 用户注册
```bash
curl -X POST "http://localhost:8000/api/v1/auth/register" \
-H "Content-Type: application/json" \
-d '{
"username": "testuser",
"email": "test@example.com",
"password": "testpass123"
}'
```
### 2. 用户登录
```bash
curl -X POST "http://localhost:8000/api/v1/auth/login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=testuser&password=testpass123"
```
返回的 `access_token` 用于后续 API 请求。
### 3. 获取当前用户信息
```bash
curl -X GET "http://localhost:8000/api/v1/users/me" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
```
### 4. 创建待办事项
```bash
curl -X POST "http://localhost:8000/api/v1/todos/" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "完成项目文档"
}'
```
## 常见问题
### Q: 运行 `python -m app.db.init_db` 报错 "No module named 'app'"
**A**: 确保从项目根目录运行,并且 `backend` 目录在 Python 路径中。或者使用:
```bash
cd backend
python -m app.db.init_db
```
### Q: 前端无法连接到后端 API
**A**: 检查:
1. 后端服务是否在 `http://localhost:8000` 运行
2. `frontend/vite.config.js` 中的代理配置是否正确
3. 浏览器控制台是否有 CORS 错误
### Q: 数据库文件在哪里?
**A**: 数据库文件 `blogweb.db` 在项目根目录下。
## 下一步
1. 完善前端 UI 设计
2. 实现剩余功能模块(天气、记账、收藏、聊天、文件上传)
3. 添加单元测试
4. 配置生产环境部署