2025-12-26 17:29:22 +08:00
2025-12-26 17:29:22 +08:00
2025-12-26 17:29:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00
2025-12-26 13:42:22 +08:00

个人博客网站

基于 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. 阶段 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

S
Description
No description provided
Readme 125 KiB
Languages
TypeScript 85.2%
Python 12%
CSS 2.4%
JavaScript 0.2%
HTML 0.1%