FastAPI项目搭建与使用指南
一、项目的目录结构及介绍
FastAPI遵循了Python标准的包结构设计,具体包括以下关键目录:
- main.py: 这是应用的主要入口点,在这里可以定义并运行你的FastAPI实例。
- app/: 此目录包含了FastAPI的核心代码和其他相关组件。你可以在这里创建额外的路由、中间件或模型等。
- routers/*_router.py: 路由器文件通常用于组织特定功能组的端点。
- models/: 包含所有Pydantic模型和数据库模型。
- middlewares/: 定义中间件处理程序以执行跨多个请求的任务(如日志记录)。
- tests/: 测试文件应放置于此,使用pytest或其他测试框架进行单元和集成测试。
- .env: 配置环境变量的地方,例如数据库URL、秘钥等敏感信息。
二、项目的启动文件介绍
main.py
main.py
是项目的入口点。在这个文件中,首先导入了FastAPI
类以及可能使用的其他模块(比如Depends
用于依赖注入)。接着,通过实例化FastAPI()
来创建一个FastAPI的应用实例。之后,添加所有的路由器到这个实例上,并在最后调用uvicorn
库中的函数来运行应用程序。
示例代码如下所示:
from fastapi import FastAPI
from .routers import users_router, items_router
app = FastAPI()
app.include_router(users_router)
app.include_router(items_router)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
三、项目的配置文件介绍
配置文件 .env
或者 settings.py
取决于你选择的配置模式。如果你使用的是.env
文件,则可以在其中设置各种环境变量。
使用.env文件时的示例:
DATABASE_URL=postgresql://user:password@localhost/dbname
SECRET_KEY=mysecretkey
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
这将允许你在应用中使用这些预设值,而无需硬编码它们。例如:
import os
DB_CONNECTION = os.getenv('DATABASE_URL')
SECRET = os.getenv('SECRET_KEY')
然而,更专业的做法是在settings.py
中使用pydantic基类BaseSettings
来动态加载这些参数:
from pydantic import BaseSettings
class Settings(BaseSettings):
DATABASE_URL: str
SECRET_KEY: str
class Config:
env_file = ".env"
settings = Settings()
这样,你可以安全地访问这些设置,而不必担心将机密信息暴露给非预期的读取权限。
以上是对FastAPI项目基本结构及其重要组成部分的简介。希望这份指南能够帮助你快速理解和开始使用FastAPI项目。
如果你有任何疑问或者需要进一步的帮助,请随时询问。祝你开发顺利!