FastAPI之 路径参数与校验,bool值
FastAPI之路径参数以及验证
from fastapi import APIRouter,Path app03 = APIRouter() @app03.get('/path/{num}') async def path_parameter_validation( num: int = Path(..., ge =100, le = 10, title = 'ID' ) ): return num
FastAPI值 查询参数
from fastapi import APIRouter, Query from typing import Optional app03 = APIRouter() @app03.get('/query') async def query_parameter_transmit( page: int = 1, page_num: Optional[int] = None ) return page,page_num
FastAPI之 bool值传递
from fastapi import APIRouter app03 = APIRouter() @app03.get('/bool/convertion'): async def type_convertion(parameter: bool = False) return parameter # 注意 # False,false,off,0,no 都是false # True,on,1,yes 都是True
FastAPI之 查询参数验证
from fastapi import APIRouter app03 = APIRouter() @app03.get('/query/validation') async def query_parameter_validation( value: str = Query(..., maxlength=100, min_length=10), values: List[str] = Query(default=['k1','k2'],alias='牛逼哦') )
FastAPI之混合查询 request_body(post请求),路径参数,以及查询参数
# 首先先写request_body 即post请求 request Body和 from pydantic import BaseModel # 请求体和注解 class CityInfo(BaseModel): name: str = Field(...,example='beijing') example只是添加注解,不参与验证 country: str country_code: str = None country_population: int = Field(default=800,description='人口数量',ge=10,le=20) class config: schema_extra = { 'example':{ name:'BeiJING', ' country':'中国', ' country_code':'ZG', 'country_population':1000, } }
# request_body请求体 + path路径参数 + query 查询参数三合一来传递
@app03.put('/request_body/city/{name}')
async def mix_city_mix(
name: str,
city01: CityInfo,
city02: CityInfo,
confirmed: int = Query(default=None, description='确诊数', ge=0),
death: int = Query(default=None, description='死亡数', ge=0)
):
if name == 'ShangHai':
return {'ShangHai': {'confirmed': 27,'death': 5}}
return city01.dict(), city02.json()
fsatapi 之 数据格式嵌套的请求体
from fastapi import APIRouter from pydantic import BaseModel,Field app03 = APIRouter() class CityInfo(BaseModel): name: str = Field(...,example = 'BeiJing') #example的值只是举例,不做校验 country: str country_code: str = None country_population: int = Field(default=800, le=800, title='人口数量', description='人口数量描述') class config: schema_extra = { example: { 'name': 'ShangHai', 'country': '中国', 'country_code': 'CN', 'country_population':8000 } } #基于pydantic定义好请求体的数据结构,校验使用field class Data(BaseModel): city: List[CityInfo] = None date: date # 除了date 还有uuid,ipv4,ipv6,frozenset,bytes等数据类型 confirmed: int = Field(default=0, description='确诊数', ge=0) deaths: int = Field(default=0, description='死亡数', ge=0) recovered: int = Field(default=0, description='痊愈数', ge=0) @app03.put('/request_body/nested') def nested_data(data: Data): return data

浙公网安备 33010602011771号