Request#

参考:Request

假设你想在你的路径操作函数中获取客户端的 IP 地址/主机。

为此,你需要直接访问请求对象。

from fastapi import FastAPI
from starlette.requests import Request

app = FastAPI()


@app.get("/items/{item_id}")
def read_root(item_id: str, request: Request):
    client_host = request.client.host
    return {"client_host": client_host, "item_id": item_id}

通过声明路径操作函数参数,并将其类型设置为 Request,FastAPI 就会知道将 Request 传递给那个参数。