亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當前位置:首頁 > IT技術 > Windows編程 > 正文

              FastAPI(53)- Response Headers 響應設置 Headers
              2021-10-04 16:38:33

              前言

              ?

              有兩種實現(xiàn)場景

              • 路徑操作函數(shù)聲明 Response 參數(shù)來設置 Header
              • 在函數(shù)內(nèi),通過 return Response 來設置?Header

              ?

              路徑操作函數(shù)聲明 Response 參數(shù)來設置 Header

              from fastapi import FastAPI, Response
              
              app = FastAPI()
              
              
              @app.get("/item")
              # 路徑操作函數(shù)聲明一個 Response 類型的參數(shù)
              async def get_item(response: Response):
                  response.headers["x-token"] = "token_!@#%#$^$%&"
                  return {"name": "設置 headers"}
              • 然后可以像往常一樣返回需要的任何對象(字典、數(shù)據(jù)庫模型等)
              • 如果聲明了一個 response_model,它仍將用于過濾和轉換返回的對象
              • FastAPI 將使用該臨時響應來提取 headers(還有 cookies、status_code),并將它們放入包含返回值的最終響應中,由任何 response_model 過濾
              • 還可以在依賴項中聲明 Response 參數(shù),并在其中設置 headers、cookies

              ?

              請求結果

              ?

              聲明 response_model 和使用依賴項的栗子

              from fastapi import FastAPI, Response, Depends
              from pydantic import BaseModel
              
              app = FastAPI()
              class Item(BaseModel):
                  id: str
                  name: str
              
              
              async def depnds_header(response: Response):
                  response.headers["x-depends-token"] = "************"
              
              
              @app.get("/item2", dependencies=[Depends(depnds_header)], response_model=Item)
              async def get_item():
                  return {"id": "12345", "name": "測試 dependencies和response_model", "age": 24}

              ?

              請求結果

              ?

              通過 return Response 來設置 Header

              from fastapi import FastAPI, Response
              from fastapi.responses import JSONResponse
              
              app = FastAPI()
              @app.get("/items")
              async def get_item():
                  response = JSONResponse(content={"name": "JSONResponse"})
                  response.headers["x-auth-token"] = "XXX_TOKEN"
                  return response

              ?

              請求結果

              ?

              headers 的源碼

              它是 Starlette 庫的 Response 類里面的方法哦,加了 @property 變成屬性,就可以訪問私有屬性 _headers 了

              ?

              本文摘自 :https://www.cnblogs.com/

              開通會員,享受整站包年服務立即開通 >