Request
#
参考:Request
假设你想在你的路径操作函数中获取客户端的 IP 地址/主机。
为此,你需要直接访问请求对象。
!pip install -q fastapi uvicorn
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
传递给那个参数。
if __name__ == "__main__":
import asyncio
import uvicorn
config = uvicorn.Config(app, port=3001, reload=False,)
server = uvicorn.Server(config)
loop = asyncio.get_event_loop()
loop.create_task(server.serve())