b495bc1dcac8d57ce66979160bfd8eefdc75e744
个人博客网站
基于 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. 安装后端依赖
pip install -r requirements.txt
2. 初始化数据库
# 从项目根目录运行
python -m app.db.init_db
或者:
cd backend/app/db
python init_db.py
如果需要重置数据库(⚠️ 会删除所有数据):
python -m app.db.init_db --reset
3. 配置环境变量
复制 .env.example 为 .env 并修改配置:
cp .env.example .env
4. 启动后端服务
# 方式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. 安装前端依赖
cd frontend
npm install
6. 启动前端服务
npm run dev
前端服务将在 http://localhost:5173 启动。
开发路线图
本项目按照以下阶段逐步开发:
- 阶段 1:静态页面 + TodoList(无用户)✅
- 阶段 2:博客系统(公开)✅
- 阶段 3:用户系统 + 权限隔离 ✅
- 阶段 4:天气查询 + 个人记账本 🚧
- 阶段 5:书影音收藏站 🚧
- 阶段 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
Description
Languages
TypeScript
85.2%
Python
12%
CSS
2.4%
JavaScript
0.2%
HTML
0.1%