添加项目设置
创建文件.env,在里面写入:
.env
python
# 应用配置
VERSION=1.0.0
APP_TITLE=企业级FastAPI后端模板
PROJECT_NAME=fastapi-template
APP_DESCRIPTION=企业级FastAPI后端模板 - 开箱即用
# 应用配置
APP_ENV=development
# 调试模式 (生产环境设置为False)
DEBUG=True
安装依赖pydantic_settings,用于管理环境变量和配置
shell
pip install pydantic_settings
创建settings/config.py文件,然后在里面编写:
python
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
model_config = SettingsConfigDict(
env_file=".env",
env_file_encoding="utf-8",
case_sensitive=True,
extra="ignore",
)
VERSION: str = "0.1.0"
APP_TITLE: str = "Vue FastAPI Admin"
PROJECT_NAME: str = "Vue FastAPI Admin"
APP_DESCRIPTION: str = "Description"
DEBUG: bool = True
APP_ENV: str = "development"
settings = Settings()
创建settings/__init__.py文件:
python
from .config import settings as settings
整合路由Router
创建api/v1目录,在这个目录里面进行路由分发、参数验证。
然后在api/v1目录下创建auth/auth.py文件,在文件里面添加路由:
python
import os
from datetime import UTC, datetime
from fastapi import APIRouter
from settings import settings
router = APIRouter()
@router.get("/health", summary="健康检查")
async def health_check():
"""系统健康检查"""
return {
"status": "healthy",
"timestamp": datetime.now(UTC).isoformat(),
"version": settings.VERSION,
"environment": settings.APP_ENV,
"service": "FastAPI Backend Template",
}
@router.get("/version", summary="版本信息")
async def get_version():
"""获取API版本信息"""
return {
"version": settings.VERSION,
"app_title": settings.APP_TITLE,
"project_name": settings.PROJECT_NAME,
"build": os.getenv("BUILD_NUMBER", "dev"),
"commit": os.getenv("GIT_COMMIT", "unknown"),
"python_version": os.getenv("PYTHON_VERSION", "3.11+"),
}
创建api/v1/auth/__init__.py文件,代码如下:
python
from fastapi import APIRouter
from .auth import router
auth_router = APIRouter()
auth_router.include_router(router, tags=["基础模块"])
__all__ = ["auth_router"]
创建api/v1/__init__.py文件,代码如下:
python
from fastapi import APIRouter
from .auth import auth_router
v1_router = APIRouter()
v1_router.include_router(auth_router, prefix="/auth")
创建api/__init__.py文件,代码如下:
python
from fastapi import APIRouter
from .v1 import v1_router
api_router = APIRouter()
api_router.include_router(v1_router, prefix="/v1")
__all__ = ["api_router"]
创建core/init_app.py文件,代码如下:
python
from fastapi import FastAPI
from api import api_router
def register_routers(app: FastAPI, prefix: str = "/api"):
app.include_router(api_router, prefix=prefix)
修改main.py文件,代码如下:
python
from fastapi import FastAPI
from core.init_app import register_routers
app = FastAPI()
register_routers(app, prefix="/api")
然后可以通过访问http://127.0.0.1:8000/docs地址查看 FastAPI API 文档:
