Skip to content

Athenavi/fast_blog

Repository files navigation

FastBlog - 现代化 Python 博客系统 (FastAPI + Django 双后端)

Python Version FastAPI Version Django Version License Version

一个功能丰富、易于部署的现代化博客系统,采用前后端分离架构和FastAPI + Django 双后端设计,支持灵活切换后端框架。

🚀 快速开始

# Docker 一键部署(推荐)
git clone https://github.com/Athenavi/fast_blog.git
cd fast_blog
docker-compose up -d

# 访问应用
# 前端:http://localhost:3000
# API 文档:http://localhost:9421/docs (FastAPI) 或 http://localhost:9421/api/docs/ (Django)

详细安装指南请查看:快速入门文档

💡 核心特性

🔄 双后端架构

  • FastAPI 模式:高性能异步 API 服务,适合微服务和高并发场景
  • Django 模式:内置 Admin 后台,快速开发企业级应用
  • 灵活切换:通过命令行参数选择 (python main.py --backend fastapi|django)
  • 数据兼容:两种模式使用相同数据库,无缝切换

⚡ 路由代码生成器

  • 单一事实来源:基于 config/routes.yaml 声明文件
  • 自动生成:同时生成 Django Ninja、FastAPI 和 TypeScript 代码
  • 类型安全:前后端统一的类型定义,端到端类型检查
  • 高效开发:158 个端点,29 个模块,3 秒内完成生成
  • 监听模式:文件变化自动重新生成,支持 pre-commit 钩子

详细文档请查看:路由代码生成器指南

📦 主要功能

  • 文章管理 - Markdown 编辑器、标签分类、全文搜索
  • 用户系统 - 完整的注册/登录、权限管理
  • 评论系统 - 集成 Giscus 评论
  • 媒体管理 - S3 协议支持、自动缩略图
  • 安全更新 - 独立进程架构,自动重启和监控

📚 文档导航

新手入门

开发者

参考资料

其他文档

🛠️ 技术栈

  • 后端: FastAPI 0.128.x / Django 6.0 / PostgreSQL 17+
  • 前端: Next.js 16 / TypeScript / TailwindCSS
  • 部署: Docker / Docker Compose / Nginx
  • 版本: V0.0.2.0

🔧 开发工具

Scripts 目录

scripts/ 目录提供了强大的开发和维护工具:

# 路由代码生成(核心功能)
python scripts/generate_routes.py              # 根据 routes.yaml 生成所有代码
python scripts/generate_routes.py --watch      # 监听模式,自动重新生成

# 开发工具集
python scripts/dev_tools.py generate-shared-services  # 生成共享服务导入
python scripts/dev_tools.py verify-routes             # 验证路由一致性
python scripts/dev_tools.py check-all-list            # 检查 __all__ 列表
python scripts/dev_tools.py check-imports             # 检查导入是否存在

# 数据库初始化
python scripts/init_db.py                      # 创建数据库和超级管理员

# 发布构建
python scripts/build_release.py --version 1.0.0       # 构建发布包

详细文档请查看:Scripts 使用说明

典型工作流

# 1. 添加新 API 端点
# 编辑 config/routes.yaml 添加端点配置

# 2. 生成路由代码
python scripts/generate_routes.py

# 3. 更新共享服务导入
python scripts/dev_tools.py generate-shared-services

# 4. 验证路由一致性
python scripts/dev_tools.py verify-routes

# 5. 实现业务逻辑
# 在对应的模块文件中实现 handler 函数

📄 开源协议

本项目采用 Apache License 2.0 开源协议。

About

一个功能丰富、易于部署的现代化博客系统(FastAPI),支持主题定制、插件扩展和响应式页面。

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors