180 lines
4.2 KiB
Markdown
180 lines
4.2 KiB
Markdown
# 个人博客网站
|
||
|
||
基于 FastAPI + Vue 3 开发的全栈个人博客网站项目。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
blogweb/
|
||
├── backend/ # 后端代码
|
||
│ ├── app/
|
||
│ │ ├── api/ # API 路由
|
||
│ │ │ └── api_v1/
|
||
│ │ │ ├── endpoints/ # API 端点
|
||
│ │ │ └── api.py
|
||
│ │ ├── core/ # 核心配置
|
||
│ │ │ ├── config.py
|
||
│ │ │ └── security.py
|
||
│ │ ├── db/ # 数据库相关
|
||
│ │ │ ├── base.py
|
||
│ │ │ ├── session.py
|
||
│ │ │ └── init_db.py
|
||
│ │ ├── models/ # 数据模型
|
||
│ │ ├── schemas/ # Pydantic 模式
|
||
│ │ └── main.py # FastAPI 应用入口
|
||
│ ├── database.py # (旧文件,可删除)
|
||
│ ├── models.py # (旧文件,可删除)
|
||
│ └── init_db.py # (旧文件,可删除)
|
||
├── frontend/ # 前端代码
|
||
│ ├── src/
|
||
│ │ ├── views/ # 页面组件
|
||
│ │ ├── stores/ # Pinia 状态管理
|
||
│ │ ├── router/ # 路由配置
|
||
│ │ ├── App.vue
|
||
│ │ └── main.js
|
||
│ ├── package.json
|
||
│ └── vite.config.js
|
||
├── main.py # 项目启动入口
|
||
├── requirements.txt # Python 依赖
|
||
└── README.md
|
||
```
|
||
|
||
## 功能特性
|
||
|
||
### 已完成
|
||
- ✅ 用户注册和登录(JWT 认证)
|
||
- ✅ 待办事项管理(CRUD)
|
||
- ✅ 博客文章发布(CRUD)
|
||
|
||
### 开发中
|
||
- 🚧 天气查询
|
||
- 🚧 个人记账本
|
||
- 🚧 书影音收藏
|
||
- 🚧 实时聊天室(WebSocket)
|
||
- 🚧 文件上传
|
||
|
||
## 快速开始
|
||
|
||
### 1. 安装后端依赖
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 2. 初始化数据库
|
||
|
||
```bash
|
||
# 从项目根目录运行
|
||
python -m app.db.init_db
|
||
```
|
||
|
||
或者:
|
||
|
||
```bash
|
||
cd backend/app/db
|
||
python init_db.py
|
||
```
|
||
|
||
如果需要重置数据库(⚠️ 会删除所有数据):
|
||
|
||
```bash
|
||
python -m app.db.init_db --reset
|
||
```
|
||
|
||
### 3. 配置环境变量
|
||
|
||
复制 `.env.example` 为 `.env` 并修改配置:
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
|
||
### 4. 启动后端服务
|
||
|
||
```bash
|
||
# 方式1:使用 uvicorn 直接运行
|
||
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||
|
||
# 方式2:使用项目入口文件
|
||
python main.py
|
||
```
|
||
|
||
后端服务将在 `http://localhost:8000` 启动。
|
||
|
||
API 文档:`http://localhost:8000/docs`
|
||
|
||
### 5. 安装前端依赖
|
||
|
||
```bash
|
||
cd frontend
|
||
npm install
|
||
```
|
||
|
||
### 6. 启动前端服务
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
前端服务将在 `http://localhost:5173` 启动。
|
||
|
||
## 开发路线图
|
||
|
||
本项目按照以下阶段逐步开发:
|
||
|
||
1. **阶段 1**:静态页面 + TodoList(无用户)✅
|
||
2. **阶段 2**:博客系统(公开)✅
|
||
3. **阶段 3**:用户系统 + 权限隔离 ✅
|
||
4. **阶段 4**:天气查询 + 个人记账本 🚧
|
||
5. **阶段 5**:书影音收藏站 🚧
|
||
6. **阶段 6**:聊天室(WebSocket) + 文件上传 🚧
|
||
|
||
## 技术栈
|
||
|
||
### 后端
|
||
- FastAPI - 现代、快速的 Web 框架
|
||
- SQLModel - 基于 SQLAlchemy 和 Pydantic 的 ORM
|
||
- SQLite - 开发环境数据库
|
||
- JWT - 用户认证
|
||
- Pydantic - 数据验证
|
||
|
||
### 前端
|
||
- Vue 3 - 渐进式 JavaScript 框架
|
||
- Vue Router - 路由管理
|
||
- Pinia - 状态管理
|
||
- Axios - HTTP 客户端
|
||
- Vite - 构建工具
|
||
|
||
## API 端点
|
||
|
||
### 认证
|
||
- `POST /api/v1/auth/register` - 用户注册
|
||
- `POST /api/v1/auth/login` - 用户登录
|
||
|
||
### 用户
|
||
- `GET /api/v1/users/me` - 获取当前用户信息
|
||
- `GET /api/v1/users/` - 获取用户列表
|
||
|
||
### 待办事项
|
||
- `GET /api/v1/todos/` - 获取待办事项列表
|
||
- `POST /api/v1/todos/` - 创建待办事项
|
||
- `GET /api/v1/todos/{id}` - 获取单个待办事项
|
||
- `PUT /api/v1/todos/{id}` - 更新待办事项
|
||
- `DELETE /api/v1/todos/{id}` - 删除待办事项
|
||
|
||
### 博客文章
|
||
- `GET /api/v1/posts/` - 获取文章列表
|
||
- `POST /api/v1/posts/` - 创建文章
|
||
- `GET /api/v1/posts/{id}` - 获取单个文章
|
||
- `PUT /api/v1/posts/{id}` - 更新文章
|
||
- `DELETE /api/v1/posts/{id}` - 删除文章
|
||
|
||
## 数据库设计
|
||
|
||
详见 `数据库设计说明.md`
|
||
|
||
## 许可证
|
||
|
||
MIT
|
||
|