fastapi模板
时间: 2025-06-02 08:13:50 浏览: 14
### FastAPI 项目模板及示例代码
FastAPI 是一个现代、快速(高性能)的基于 Python 3.6+ 的 Web 框架,用于构建 API[^3]。它提供了许多功能,如请求体验证和文档生成,以帮助开发者轻松构建高性能 API[^2]。以下是一个基于 FastAPI 的后端项目模板的介绍以及相关的目录结构。
#### 1. 项目模板介绍
FastAPI-Backend-Template 是一个包含 FastAPI、PostgreSQL 和异步 SQLAlchemy 2.0 的后端项目模板。它还集成了 Alembic 用于异步数据库迁移,并支持 Docker 化部署[^1]。以下是该项目的主要目录结构及其功能:
#### 2. 目录结构及说明
```
.
├── app/ # 主应用程序目录
│ ├── __init__.py # 初始化文件
│ ├── main.py # FastAPI 应用入口
│ ├── models.py # 数据库模型定义
│ ├── schemas.py # Pydantic 模型定义
│ ├── crud.py # CRUD 操作逻辑
│ └── dependencies.py # 依赖注入相关代码
├── alembic/ # 数据库迁移工具 Alembic 配置
│ ├── versions/ # 数据库迁移版本文件
│ ├── env.py # 迁移环境配置
│ └── script.py.mako # 迁移脚本模板
├── migrations/ # 数据库迁移历史记录
├── docker-compose.yml # Docker Compose 文件
├── requirements.txt # Python 依赖列表
└── .env.example # 环境变量配置示例
```
#### 3. 示例代码
以下是一个简单的 FastAPI 示例代码,展示如何定义路由和返回 JSON 响应:
```python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello World"}
```
如果需要集成 PostgreSQL 和 SQLAlchemy,可以参考以下代码片段:
```python
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
from sqlalchemy.orm import sessionmaker
from fastapi import Depends, FastAPI
# 数据库连接配置
DATABASE_URL = "postgresql+asyncpg://user:password@localhost/dbname"
engine = create_async_engine(DATABASE_URL)
async_session = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
# 定义依赖项
async def get_db() -> AsyncSession:
async with async_session() as session:
yield session
# 创建 FastAPI 应用
app = FastAPI()
@app.get("/items/")
async def read_items(db: AsyncSession = Depends(get_db)):
result = await db.execute("SELECT * FROM items")
return result.all()
```
#### 4. 配置文件
项目中的 `.env.example` 文件是环境变量的配置示例,开发者可以根据需要修改为实际值。以下是一个示例内容:
```
# 数据库配置
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=localhost
DB_PORT=5432
DB_NAME=mydatabase
# FastAPI 配置
SECRET_KEY=your-secret-key
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
```
#### 5. 总结
FastAPI-Backend-Template 提供了一个完整的后端开发框架,适用于需要高性能和可扩展性的项目。通过集成 PostgreSQL、SQLAlchemy 和 Alembic,开发者可以快速构建并维护复杂的 API 服务。
阅读全文