# 个人博客网站 基于 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