FastAPI 异步 SQLAlchemy 项目教程
fastapi-async-sqlalchemyFastAPI Async SQLAlchemy middleware项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-async-sqlalchemy
项目目录结构及介绍
fastapi-async-sqlalchemy/
├── alembic/
│ ├── versions/
│ │ └── ...
│ ├── env.py
│ ├── script.py.mako
├── app/
│ ├── api/
│ │ ├── endpoints/
│ │ │ └── ...
│ │ └── api.py
│ ├── core/
│ │ ├── config.py
│ │ └── security.py
│ ├── db/
│ │ ├── base.py
│ │ ├── base_class.py
│ │ ├── init_db.py
│ │ └── session.py
│ ├── models/
│ │ └── ...
│ ├── schemas/
│ │ └── ...
│ └── main.py
├── tests/
│ └── ...
├── .env
├── .gitignore
├── alembic.ini
├── Dockerfile
├── README.md
├── requirements.txt
└── setup.py
目录结构说明
- alembic/: 数据库迁移脚本目录。
- versions/: 包含具体的迁移脚本。
- env.py: Alembic 环境配置文件。
- script.py.mako: Alembic 脚本模板。
- app/: 应用的主要代码目录。
- api/: API 相关代码。
- endpoints/: 具体的 API 端点。
- api.py: API 路由配置。
- core/: 核心配置和安全相关代码。
- config.py: 应用配置文件。
- security.py: 安全相关配置。
- db/: 数据库相关代码。
- base.py: 数据库模型基类。
- base_class.py: 数据库模型基类。
- init_db.py: 数据库初始化脚本。
- session.py: 数据库会话管理。
- models/: 数据库模型。
- schemas/: Pydantic 模型。
- main.py: 应用入口文件。
- tests/: 测试代码目录。
- .env: 环境变量配置文件。
- .gitignore: Git 忽略文件配置。
- alembic.ini: Alembic 配置文件。
- Dockerfile: Docker 配置文件。
- README.md: 项目说明文档。
- requirements.txt: 依赖包列表。
- setup.py: 项目安装脚本。
项目的启动文件介绍
app/main.py
from fastapi import FastAPI
from app.api.api import api_router
from app.core.config import settings
from app.db.init_db import init_db
app = FastAPI(title=settings.PROJECT_NAME, openapi_url=f"{settings.API_V1_STR}/openapi.json")
@app.on_event("startup")
async def startup_event():
await init_db()
app.include_router(api_router, prefix=settings.API_V1_STR)
启动文件说明
- FastAPI 实例化: 创建 FastAPI 应用实例,并设置项目名称和 OpenAPI URL。
- 启动事件: 在应用启动时执行数据库初始化脚本。
- 路由包含: 将 API 路由包含到应用中。
项目的配置文件介绍
app/core/config.py
from pydantic import BaseSettings
class Settings(BaseSettings):
PROJECT_NAME: str = "FastAPI Async SQLAlchemy"
API_V1_STR: str = "/api/v1"
SQLALCHEMY_DATABASE_URI: str = "sqlite+aiosqlite:///./test.db"
settings = Settings()
配置文件说明
- BaseSettings: 使用 Pydantic 的 BaseSettings 类来管理配置。
- PROJECT_NAME: 项目名称。
- API_V1_STR: API 版本路径。
- SQLALCHEMY_DATABASE_URI: 数据库连接 URI。
fastapi-async-sqlalchemyFastAPI Async SQLAlchemy middleware项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-async-sqlalchemy