有时,我们要为整个应用添加依赖项。
通过与定义路径装饰器依赖项 类似的方式,可以把依赖项添加至整个 FastAPI 应用。
这样一来,就可以为所有路径操作应用该依赖项:
from fastapi import Depends, FastAPI, Header, HTTPException
async def verify_token(x_token: str = Header(...)):
if x_token != "fake-super-secret-token":
raise HTTPException(status_code=400, detail="X-Token header invalid")
async def verify_key(x_key: str = Header(...)):
if x_key != "fake-super-secret-key":
raise HTTPException(status_code=400, detail="X-Key header invalid")
return x_key
app = FastAPI(dependencies=[Depends(verify_token), Depends(verify_key)])
@app.get("/items/")
async def read_items():
return [{"item": "Portal Gun"}, {"item": "Plumbus"}]
@app.get("/users/")
async def read_users():
return [{"username": "Rick"}, {"username": "Morty"}]
路径装饰器依赖项 一章的思路均适用于全局依赖项, 在本例中,这些依赖项可以用于应用中的所有路径操作。
稍后,大型应用 - 多文件一章中会介绍如何使用多个文件创建大型应用程序,在这一章中,您将了解到如何为一组路径操作声明单个 dependencies 参数。
你可以向FastAPI应用添加中间件."中间件"是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应返回之前工作.它接收...
即插视图可以像常规函数一样用route()或更好的add_url_rule()附加到应用中。然而当你附加它时,你必须 提供 HTTP 方法的名称。为...
要定义一个多对一关联,使用 ForeignKey:from django.db import modelsclass Reporter(models.Model):first_name = models.C...
迁移以磁盘格式存储,这里称为“迁移文件”。这些文件实际上是普通的 Python 文件,具有约定的对象布局,以声明式风格编写。基本...
基于类的视图提供另一种将视图实现为 Python 对象而不是函数的方法。它们不能替代基于函数的视图,但与基于函数的视图相比,它们...