fastapi(五)查詢引數字串認證

2021-10-04 03:18:13 字數 2168 閱讀 1848

fastapi 允許為你的引數新增附加的資訊和驗證

eg:

from fastapi import fastapi

)"/items/"

)async

defread_items

(q:str

=none):

results =,]

}if q:

results.update(

)return results

附加驗證

我們將在q引數上新增強制驗證,無論是否提供該引數,它將最長擁有50個字元

from fastapi import fastapi, query

)"/items/"

)async

defread_items

(q:str

= query(

none

, max_length=50)

):results =,]

}if q:

results.update(

)return results

使用query作為預設值

現在使用query作為預設引數值,並設定max_length為50

…async def read_items(q: str = query(none, max_length=50)):

…其中第乙個引數為定義的預設值。

這種方式定義將明顯的宣告它為查詢引數。

新增更多的驗證

…async def read_items(q: str = query(none, min_length=3, max_length=50)):

新增正規表示式

同時也可定義乙個正規表示式來匹配引數。

…async def read_items(

q: str = query(none, min_length=3, max_length=50, regex="^fixedquery$")):…

^表示以什麼為開頭,

$表示以什麼為結尾

使其required

在之前的章節中當引數宣告中沒有預設值得時候,它就是必須的,

q:str

所以當使用query來宣告查詢引數時可以使用…作為第乙個引數,來表示必須。

…async def read_items(q: str = query(…, min_length=3)):

符號「…」他是特殊的值,在python中被稱為「ellipsis」

query引數使用list或多個值

當使用query來定義查詢引數時可以宣告為接收乙個list,來表示接收多個值

from typing import list

from fastapi import fastapi, query

)"/items/"

)async

defread_items

(q: list[

str]

= query(

none))

: query_items =

return query_items

然後url就可以這樣寫:

直接使用list

from fastapi import fastapi, query

)"/items/"

)async

defread_items

(q:list

= query(

none))

: query_items =

return query_items

在這個例子中fastapi將不會驗證這個list中的值,

新增更多的metadata

新增的這些metadata將自動新增到openapi中,以及docs文件中和其他工具。

deprecating 引數

Oracle instr函式 字串查詢

instr 源字串,目標字串,起始位置,匹配序號 在oracle plsql中,instr函式返回要擷取的字串在源字串中的位置。只檢索一次,就是說從字元的開始 到字元的結尾就結束。語法如下 引數分析 string1 源字串,要在此字串中查詢。string2 要在string1中查詢的字串.start...

數字轉字串 字串轉數字

數字轉字串 這裡首先用到乙個陣列逆置函式如下 void reverse char arr 逆置 for p arr p arr p 將arr陣列逆置 因為將乙個數字轉成字串,若果是從右往左依次獲得,操作較容易,所以以此得到的字串是數字的逆序字串,所以要逆置,才可得到順序 如下 void myitoa...

字串 字串轉數字

題目 將乙個字串轉換成數字。例如 123 123,71.02 71.02.方法一,直接呼叫庫函式atoi const char 和atof const char stoi string str include include int main 輸出結果 num int 435 num double ...