FastAPI 教程(二)

路徑參數(shù)(Path Parameter)

路徑參數(shù)在路由里面用大括號括起來碳默,在方法中需要把參數(shù)寫出來挠日,還可以標注參數(shù)的類型宝磨,例如:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}

聲明類型后弧关,如果返回的結果不對盅安,則會返回一個出錯的 message。所有的校驗都是通過 Pydantic 模塊來實現(xiàn)的梯醒。

在路由文件中宽堆,定義在前面的路徑會優(yōu)先匹配。

使用枚舉類型來做路徑參數(shù)

我們可以使用 Python 的枚舉類型 enum 來定義路徑參數(shù)茸习,限定其取值畜隶,例如:

from enum import Enum
from fastapi import FastAPI

class Name(str, Enum):
    Allan = '張三'
    Jon   = '李四'
    Bob   = '王五'

app = FastAPI()


@app.get("/{who}")
async def get_day(who: Name):
    if who == Name.Allan:
        return {"who": who, "message": "張三是德國人"}
    if who.value == '李四':
        return {"who": who, "message": "李四是英國人"}
    return {"who": who, "message": "王五是法國人"}

此時如果訪問 http://localhost:8000/張三 ,就可以得到 {"who": 張三, "message": 張三是德國人} 号胚。

包含路徑的參數(shù)

在路徑參數(shù)上把參數(shù)的類型設為 path 就可以使用帶路徑的參數(shù)籽慢,代碼如下:

from fastapi import FastAPI

app = FastAPI()

@app.get("/files/{file_path:path}")  # 這里!
async def read_file(file_path: str):
    return {"file_path": file_path}

這樣傳入的參數(shù)可以是類似 /home/johndoe/myfile.txt 之類的路徑猫胁。

查詢參數(shù)(Query Parameter)

查詢的參數(shù)如果是針對 get 請求箱亿,就是 url 后面用問號帶起的參數(shù),這些參數(shù)我們可以寫在路由方法的參數(shù)中弃秆,例如:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/")
async def read_item(skip: int = 0, limit: int = 10):
    # ……

我們可以訪問諸如 http://localhost/items/?skip=0&limit=10 來測試届惋。

可選參數(shù)(Optional Parameters)

要使用可選參數(shù),需要先導入 typing 模塊中的 Optional菠赚,然后使用 Optional 并指定參數(shù)的默認值為 None 脑豹,例如:

from typing import Optional
from fastapi import FastAPI

app = FastAPI()


@app.get("/items/{item_id}")
async def read_item(item_id: str, q: Optional[str] = None):
    if q:
        return {"item_id": item_id, "q": q}
    return {"item_id": item_id}

如果不定義參數(shù)的值,則該參數(shù)為 必填參數(shù) 衡查。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瘩欺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拌牲,更是在濱河造成了極大的恐慌俱饿,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塌忽,死亡現(xiàn)場離奇詭異拍埠,居然都是意外死亡,警方通過查閱死者的電腦和手機土居,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門枣购,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人装盯,你說我怎么就攤上這事坷虑。” “怎么了埂奈?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵迄损,是天一觀的道長。 經(jīng)常有香客問我账磺,道長芹敌,這世上最難降的妖魔是什么痊远? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮氏捞,結果婚禮上碧聪,老公的妹妹穿的比我還像新娘。我一直安慰自己液茎,他們只是感情好逞姿,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捆等,像睡著了一般滞造。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栋烤,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天谒养,我揣著相機與錄音,去河邊找鬼明郭。 笑死买窟,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的薯定。 我是一名探鬼主播始绍,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沉唠!你這毒婦竟也來了疆虚?” 一聲冷哼從身側(cè)響起苛败,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤满葛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后罢屈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嘀韧,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年缠捌,在試婚紗的時候發(fā)現(xiàn)自己被綠了锄贷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡曼月,死狀恐怖谊却,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哑芹,我是刑警寧澤炎辨,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站聪姿,受9級特大地震影響碴萧,放射性物質(zhì)發(fā)生泄漏乙嘀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一破喻、第九天 我趴在偏房一處隱蔽的房頂上張望虎谢。 院中可真熱鬧,春花似錦曹质、人聲如沸婴噩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讳推。三九已至,卻和暖如春玩般,著一層夾襖步出監(jiān)牢的瞬間银觅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工坏为, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留究驴,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓匀伏,卻偏偏與公主長得像洒忧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子够颠,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351