FastAPI Backend Template¶
项目特性¶
🏗️ 架构设计¶
- 三层架构: API → Service → Repository → Model
- 依赖注入: 基于FastAPI的依赖系统
- 异步支持: 全异步设计,支持高并发
- 类型安全: 完整的Python类型标注
🔐 安全特性¶
- JWT认证: 访问令牌(4小时) + 刷新令牌(7天)
- RBAC权限: 基于角色的访问控制
- 密码安全: Argon2哈希算法
- 限流保护: 登录频率限制
📁 核心功能¶
- 用户管理: 用户CRUD、密码重置、状态管理
- 角色管理: 角色分配、权限绑定
- 菜单管理: 动态菜单配置
- 文件管理: 安全的文件上传下载
- 审计日志: 完整的操作记录
- 部门管理: 组织架构管理
🛠️ 开发工具¶
- UV包管理: 快速的Python包管理器
- 代码规范: Black + Ruff + MyPy
- 测试覆盖: Pytest + 异步测试
- 数据库迁移: Aerich迁移工具
- API文档: 自动生成OpenAPI文档
技术栈¶
- FastAPI: 现代、高性能的Web框架
- Tortoise ORM: 异步ORM框架
- Pydantic: 数据验证和设置管理
- JWT: JSON Web Token认证
- PostgreSQL: 生产环境推荐
- SQLite: 开发环境默认
- Redis: 缓存和会话存储
- Aerich: 数据库迁移工具
- UV: Python包管理器
- Black: 代码格式化
- Ruff: 代码检查
- MyPy: 类型检查
- Pytest: 测试框架
- Docker: 容器化部署
- GitHub Actions: CI/CD自动化
- Uvicorn: ASGI服务器
- Nginx: 反向代理
快速开始¶
# 克隆项目
git clone https://github.com/JiayuXu0/FastAPI-Template.git
cd FastAPI-Template
# 安装依赖
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
# 初始化数据库
uv run aerich init-db
# 启动开发服务器
uv run uvicorn src:app --reload --host 0.0.0.0 --port 8000
访问 http://localhost:8000/docs 查看交互式API文档。
文档导航¶
贡献指南¶
欢迎参与项目建设!请参考以下步骤:
- Fork 项目仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature
) - 提交更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 创建 Pull Request
许可证¶
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
联系我们¶
- 🌐 官网: http://fastapi.infyai.cn/
- GitHub: JiayuXu0/FastAPI-Template
- Issues: 问题反馈
由 EvoAI Team 用 ❤️ 制作