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

180 lines
4.2 KiB
Markdown
Raw 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.
# 个人博客网站
基于 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