初始版本
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
# 项目结构说明
|
||||
|
||||
本文档详细说明了项目的目录结构和各文件的作用。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
blogweb/
|
||||
├── backend/ # 后端代码目录
|
||||
│ ├── app/ # FastAPI 应用主目录
|
||||
│ │ ├── __init__.py
|
||||
│ │ ├── main.py # FastAPI 应用入口
|
||||
│ │ │
|
||||
│ │ ├── api/ # API 路由模块
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ └── api_v1/ # API v1 版本
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── api.py # API 路由聚合
|
||||
│ │ │ └── endpoints/ # API 端点
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── auth.py # 认证相关端点
|
||||
│ │ │ ├── users.py # 用户相关端点
|
||||
│ │ │ ├── todos.py # 待办事项端点
|
||||
│ │ │ └── posts.py # 博客文章端点
|
||||
│ │ │
|
||||
│ │ ├── core/ # 核心配置模块
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── config.py # 应用配置
|
||||
│ │ │ └── security.py # 安全相关(密码哈希、JWT)
|
||||
│ │ │
|
||||
│ │ ├── db/ # 数据库相关
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── base.py # 数据库基础配置
|
||||
│ │ │ ├── session.py # 数据库会话管理
|
||||
│ │ │ └── init_db.py # 数据库初始化脚本 ⭐
|
||||
│ │ │
|
||||
│ │ ├── models/ # 数据模型(SQLModel)
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── user.py # 用户模型
|
||||
│ │ │ ├── todo.py # 待办事项模型
|
||||
│ │ │ ├── post.py # 博客文章模型
|
||||
│ │ │ ├── transaction.py # 记账记录模型
|
||||
│ │ │ ├── media.py # 书影音收藏模型
|
||||
│ │ │ ├── tag.py # 标签模型
|
||||
│ │ │ ├── chat.py # 聊天消息模型
|
||||
│ │ │ └── upload.py # 文件上传模型
|
||||
│ │ │
|
||||
│ │ ├── schemas/ # Pydantic 模式(API 数据验证)
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── user.py # 用户相关模式
|
||||
│ │ │ ├── todo.py # 待办事项相关模式
|
||||
│ │ │ └── post.py # 博客文章相关模式
|
||||
│ │ │
|
||||
│ │ └── initial_data/ # 初始数据模块
|
||||
│ │ ├── __init__.py
|
||||
│ │ └── README.md
|
||||
│ │
|
||||
│ ├── database.py # (旧文件,可删除)
|
||||
│ ├── models.py # (旧文件,可删除)
|
||||
│ ├── init_db.py # (旧文件,可删除)
|
||||
│ └── README.md # 后端说明文档
|
||||
│
|
||||
├── frontend/ # 前端代码目录
|
||||
│ ├── src/
|
||||
│ │ ├── views/ # 页面组件
|
||||
│ │ │ ├── Home.vue # 首页
|
||||
│ │ │ ├── Login.vue # 登录页
|
||||
│ │ │ ├── Register.vue # 注册页
|
||||
│ │ │ ├── Todos.vue # 待办事项页
|
||||
│ │ │ └── Posts.vue # 博客文章页
|
||||
│ │ ├── stores/ # Pinia 状态管理
|
||||
│ │ │ └── auth.js # 认证状态
|
||||
│ │ ├── router/ # 路由配置
|
||||
│ │ │ └── index.js
|
||||
│ │ ├── App.vue # 根组件
|
||||
│ │ └── main.js # 前端入口
|
||||
│ ├── index.html # HTML 模板
|
||||
│ ├── package.json # 前端依赖配置
|
||||
│ └── vite.config.js # Vite 配置
|
||||
│
|
||||
├── main.py # 项目启动入口 ⭐
|
||||
├── requirements.txt # Python 依赖
|
||||
├── .env.example # 环境变量示例
|
||||
├── .gitignore # Git 忽略规则
|
||||
├── README.md # 项目说明文档
|
||||
├── PROJECT_STRUCTURE.md # 本文件
|
||||
└── 数据库设计说明.md # 数据库设计文档
|
||||
```
|
||||
|
||||
## 关键文件说明
|
||||
|
||||
### ⭐ 重要文件
|
||||
|
||||
1. **`main.py`** - 项目启动入口
|
||||
- 用于开发环境快速启动 FastAPI 应用
|
||||
- 使用 uvicorn 运行 `app.main:app`
|
||||
|
||||
2. **`backend/app/main.py`** - FastAPI 应用主文件
|
||||
- 创建 FastAPI 应用实例
|
||||
- 配置 CORS 中间件
|
||||
- 注册 API 路由
|
||||
|
||||
3. **`backend/app/db/init_db.py`** - 数据库初始化脚本 ⭐
|
||||
- **位置已调整**:从 `backend/init_db.py` 移动到 `backend/app/db/init_db.py`
|
||||
- 运行方式:
|
||||
```bash
|
||||
python -m app.db.init_db # 创建表
|
||||
python -m app.db.init_db --reset # 重置数据库
|
||||
```
|
||||
|
||||
## 模块说明
|
||||
|
||||
### 后端模块
|
||||
|
||||
#### `app/core/` - 核心配置
|
||||
- `config.py`: 应用配置(数据库、安全、CORS 等)
|
||||
- `security.py`: 密码哈希、JWT 令牌生成和验证
|
||||
|
||||
#### `app/db/` - 数据库
|
||||
- `base.py`: 数据库基础配置,导入所有模型
|
||||
- `session.py`: 数据库会话管理和依赖注入
|
||||
- `init_db.py`: 数据库初始化脚本
|
||||
|
||||
#### `app/models/` - 数据模型
|
||||
- 使用 SQLModel 定义数据库表结构
|
||||
- 每个模型一个文件,便于维护
|
||||
|
||||
#### `app/schemas/` - Pydantic 模式
|
||||
- 用于 API 请求和响应的数据验证
|
||||
- 定义创建、更新、响应等不同场景的模式
|
||||
|
||||
#### `app/api/` - API 路由
|
||||
- `api_v1/api.py`: 聚合所有 API 路由
|
||||
- `api_v1/endpoints/`: 各个功能模块的端点
|
||||
|
||||
### 前端模块
|
||||
|
||||
#### `src/views/` - 页面组件
|
||||
- Vue 3 单文件组件
|
||||
- 每个功能对应一个页面
|
||||
|
||||
#### `src/stores/` - 状态管理
|
||||
- 使用 Pinia 管理全局状态
|
||||
- `auth.js`: 用户认证状态
|
||||
|
||||
#### `src/router/` - 路由
|
||||
- Vue Router 配置
|
||||
- 定义前端路由规则
|
||||
|
||||
## 开发流程
|
||||
|
||||
1. **初始化数据库**
|
||||
```bash
|
||||
python -m app.db.init_db
|
||||
```
|
||||
|
||||
2. **启动后端**
|
||||
```bash
|
||||
python main.py
|
||||
# 或
|
||||
uvicorn app.main:app --reload
|
||||
```
|
||||
|
||||
3. **启动前端**
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **数据库初始化脚本位置已调整**
|
||||
- 旧位置:`backend/init_db.py`
|
||||
- 新位置:`backend/app/db/init_db.py`
|
||||
- 运行方式:`python -m app.db.init_db`
|
||||
|
||||
2. **旧文件清理**
|
||||
- `backend/database.py`、`backend/models.py`、`backend/init_db.py` 可以删除
|
||||
- 新代码已迁移到 `backend/app/` 目录下
|
||||
|
||||
3. **环境变量**
|
||||
- 复制 `.env.example` 为 `.env`
|
||||
- 修改其中的配置项(特别是 `SECRET_KEY`)
|
||||
|
||||
4. **前后端分离**
|
||||
- 后端运行在 `http://localhost:8000`
|
||||
- 前端运行在 `http://localhost:5173`
|
||||
- 前端通过代理访问后端 API
|
||||
|
||||
Reference in New Issue
Block a user