在FastAPI中,依赖项(Dependencies)是一种用于在路由函数运行之前执行某些操作的机制。它可以用于进行身份验证、数据验证、数据库连接等操作。以下是一个简单的FastAPI教程示例,演示如何使用依赖项:

首先,确保你已经安装了FastAPI和uvicorn:
pip install fastapi uvicorn

然后,创建一个名为main.py的文件,输入以下代码:
from fastapi import FastAPI, Depends, HTTPException

app = FastAPI()

# 依赖项函数,用于获取用户认证信息
def get_current_user(token: str = Depends(lambda x: x.headers.get("Authorization"))):
    if token != "fake-token":
        raise HTTPException(status_code=401, detail="Unauthorized")
    return {"username": "fakeuser"}

# 使用依赖项函数
@app.get("/users/me")
async def read_user_me(current_user: dict = Depends(get_current_user)):
    return current_user

在这个例子中,我们定义了一个依赖项函数get_current_user,它用于获取用户认证信息。在get_current_user中,我们通过Depends装饰器将这个函数作为依赖项绑定到路由函数中。在路由函数/users/me中,我们传递current_user参数,该参数会自动从get_current_user依赖项中获取。

你可以使用[httpie](https://httpie.io/)或其他工具来测试这个API。以下是一个使用httpie的示例:
http "http://127.0.0.1:8000/users/me" "Authorization:fake-token"

在上面的命令中,我们向 /users/me 发送了一个GET请求,并在请求头中携带了一个认证令牌。FastAPI将自动执行依赖项函数,并在响应中返回相应的信息。




转载请注明出处:http://www.zyzy.cn/article/detail/7383/FastAPI