Fast-Api-example 项目教程
1. 项目的目录结构及介绍
Fast-Api-example/
├── app/
│ ├── __init__.py
│ ├── main.py
│ ├── config.py
│ ├── models.py
│ ├── routes/
│ │ ├── __init__.py
│ │ ├── items.py
│ │ └── users.py
│ └── utils/
│ ├── __init__.py
│ └── helpers.py
├── tests/
│ ├── __init__.py
│ └── test_main.py
├── .env
├── .gitignore
├── README.md
├── requirements.txt
└── setup.py
目录结构介绍
-
app/: 项目的主要代码目录。
- init.py: 使
app
成为一个 Python 包。 - main.py: 项目的启动文件,包含 FastAPI 应用的实例化和路由配置。
- config.py: 项目的配置文件,包含各种配置项。
- models.py: 定义数据库模型。
- routes/: 包含项目的路由处理文件。
- init.py: 使
routes
成为一个 Python 包。 - items.py: 处理与
items
相关的路由。 - users.py: 处理与
users
相关的路由。
- init.py: 使
- utils/: 包含项目的工具函数。
- init.py: 使
utils
成为一个 Python 包。 - helpers.py: 包含一些辅助函数。
- init.py: 使
- init.py: 使
-
tests/: 包含项目的测试代码。
- init.py: 使
tests
成为一个 Python 包。 - test_main.py: 包含测试
main.py
的测试用例。
- init.py: 使
-
.env: 包含项目的环境变量配置。
-
.gitignore: 指定 Git 忽略的文件和目录。
-
README.md: 项目的说明文档。
-
requirements.txt: 列出项目依赖的 Python 包。
-
setup.py: 项目的安装脚本。
2. 项目的启动文件介绍
main.py
from fastapi import FastAPI
from app.routes import items, users
app = FastAPI()
app.include_router(items.router)
app.include_router(users.router)
@app.get("/")
def read_root():
return {"Hello": "World"}
启动文件介绍
- FastAPI 实例化:
app = FastAPI()
创建了一个 FastAPI 应用实例。 - 路由配置:
app.include_router(items.router)
和app.include_router(users.router)
将items
和users
模块中的路由注册到主应用中。 - 根路由:
@app.get("/")
定义了根路径/
的处理函数,返回一个简单的 JSON 响应。
3. 项目的配置文件介绍
config.py
from pydantic import BaseSettings
class Settings(BaseSettings):
DATABASE_URL: str
SECRET_KEY: str
ALGORITHM: str
ACCESS_TOKEN_EXPIRE_MINUTES: int
class Config:
env_file = ".env"
settings = Settings()
配置文件介绍
- BaseSettings:
Settings
类继承自BaseSettings
,用于从环境变量中加载配置。 - 配置项:
DATABASE_URL
,SECRET_KEY
,ALGORITHM
,ACCESS_TOKEN_EXPIRE_MINUTES
是项目的配置项。 - 环境变量加载:
env_file = ".env"
指定从.env
文件中加载环境变量。 - 实例化:
settings = Settings()
创建了一个配置实例,可以在项目中使用。