系列文章:
FastAPI 學習之路(一)fastapi--高性能web開發框架
我們之前在聲明必須的參數的時候呢,我們沒有對長度做限定,現在我們要限定長度,長度8-16位。我們怎么來實現這個需求呢。
from fastapi import FastAPI, Query app = FastAPI() @app.get("/items/") def read(paword: str = Query(..., min_length=8,max_length=16)): results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]} if paword: results.update({"paword": paword}) return results
其實實現起來很簡單。這里需要說明:當你在使用 Query
且需要聲明一個值是必需的時,可以將 ...
用作第一個參數值。
那么我們去請求下。測試用例如下:
1.沒有傳遞paword參數。結果如下:
2.傳遞參數,但是長度不滿足
兩個長度一個是小於8位,一個是大於16位。
3.傳遞正確長度參數
我們假設的需求滿足了。可能有人會問...,可以看官方文檔的https://docs.python.org/3/library/constants.html#Ellipsis有介紹。
當我們傳遞 多個值,應該如何實現呢
from fastapi import FastAPI, Query from typing import List, Optional app = FastAPI() @app.get("/items/") def read(paword: Optional[List[str]] = Query(None)): results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]} if paword: results.update({"paword": paword}) return results
其實很簡單,就是傳遞一個list的參數,那么我們去請求下。
1.輸入兩個字測試,
2.輸入兩個值測試
這樣滿足了我們的需求,我們可以看下接口文檔。
接口文檔我們也是可以傳遞多個參數的。當然我們在query還可以傳遞很多內容,如:
alias
#別名參數
title#標題
description #描述,會在借口文檔有表述
deprecated#
棄用參數
還有特定的校驗
-
min_length
-
max_length
-
regex
文章首發在公眾號,歡迎關注。