日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)FastAPI教程:FastAPI教程 Header 參數(shù)

你可以使用定義 Query, Path 和 Cookie 參數(shù)一樣的方法定義 Header 參數(shù)。

成都創(chuàng)新互聯(lián),專(zhuān)注為中小企業(yè)提供官網(wǎng)建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站制作、響應(yīng)式網(wǎng)站設(shè)計(jì)、展示型成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)等服務(wù),幫助中小企業(yè)通過(guò)網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷(xiāo)推廣問(wèn)題。

導(dǎo)入 Header

首先導(dǎo)入 Header:

from typing import Optional

from fastapi import FastAPI, Header

app = FastAPI()


@app.get("/items/")
async def read_items(user_agent: Optional[str] = Header(None)):
    return {"User-Agent": user_agent}

聲明 Header 參數(shù)

然后使用和Path, Query and Cookie 一樣的結(jié)構(gòu)定義 header 參數(shù)

第一個(gè)值是默認(rèn)值,你可以傳遞所有的額外驗(yàn)證或注釋參數(shù):

from typing import Optional

from fastapi import FastAPI, Header

app = FastAPI()


@app.get("/items/")
async def read_items(user_agent: Optional[str] = Header(None)):
    return {"User-Agent": user_agent}

技術(shù)細(xì)節(jié)

Header 是 Path, Query 和 Cookie 的兄弟類(lèi)型。它也繼承自通用的 Param 類(lèi).

但是請(qǐng)記得,當(dāng)你從fastapi導(dǎo)入 Query, Path, Header, 或其他時(shí),實(shí)際上導(dǎo)入的是返回特定類(lèi)型的函數(shù)。

Info

為了聲明headers, 你需要使用Header, 因?yàn)榉駝t參數(shù)將被解釋為查詢(xún)參數(shù)。

自動(dòng)轉(zhuǎn)換

Header 在 Path, Query 和 Cookie 提供的功能之上有一點(diǎn)額外的功能。

大多數(shù)標(biāo)準(zhǔn)的headers用 "連字符" 分隔,也稱(chēng)為 "減號(hào)" (-)。

但是像 user-agent 這樣的變量在Python中是無(wú)效的。

因此, 默認(rèn)情況下, Header 將把參數(shù)名稱(chēng)的字符從下劃線(xiàn) (_) 轉(zhuǎn)換為連字符 (-) 來(lái)提取并記錄 headers.

同時(shí),HTTP headers 是大小寫(xiě)不敏感的,因此,因此可以使用標(biāo)準(zhǔn)Python樣式(也稱(chēng)為 "snake_case")聲明它們。

因此,您可以像通常在Python代碼中那樣使用 user_agent ,而不需要將首字母大寫(xiě)為 User_Agent 或類(lèi)似的東西。

如果出于某些原因,你需要禁用下劃線(xiàn)到連字符的自動(dòng)轉(zhuǎn)換,設(shè)置Header的參數(shù) convert_underscores 為 False:

from typing import Optional

from fastapi import FastAPI, Header

app = FastAPI()


@app.get("/items/")
async def read_items(
    strange_header: Optional[str] = Header(None, convert_underscores=False)
):
    return {"strange_header": strange_header}

Warning

在設(shè)置 convert_underscores 為 False 之前,請(qǐng)記住,一些HTTP代理和服務(wù)器不允許使用帶有下劃線(xiàn)的headers。

重復(fù)的 headers

有可能收到重復(fù)的headers。這意味著,相同的header具有多個(gè)值。

您可以在類(lèi)型聲明中使用一個(gè)list來(lái)定義這些情況。

你可以通過(guò)一個(gè)Python list 的形式獲得重復(fù)header的所有值。

比如, 為了聲明一個(gè) X-Token header 可以出現(xiàn)多次,你可以這樣寫(xiě):

from typing import List, Optional

from fastapi import FastAPI, Header

app = FastAPI()


@app.get("/items/")
async def read_items(x_token: Optional[List[str]] = Header(None)):
    return {"X-Token values": x_token}

如果你與路徑操作通信時(shí)發(fā)送兩個(gè)HTTP headers,就像:

X-Token: foo
X-Token: bar

響應(yīng)會(huì)是:

{
    "X-Token values": [
        "bar",
        "foo"
    ]
}

回顧

使用 Header 來(lái)聲明 header , 使用和 Query, Path 與 Cookie 相同的模式。

不用擔(dān)心變量中的下劃線(xiàn),F(xiàn)astAPI 會(huì)負(fù)責(zé)轉(zhuǎn)換它們。


當(dāng)前文章:創(chuàng)新互聯(lián)FastAPI教程:FastAPI教程 Header 參數(shù)
URL標(biāo)題:http://m.5511xx.com/article/ccdpceo.html