实例代码
from fastapi import FastAPI import uvicorn app = FastAPI() @app.post("/user/{name}") # 路径参数 async def read_item(name: str): return {"name": name} if __name__ == '__main__': uvicorn.run( app = app, host = "127.0.0.1", port = 80, )
导入验证
from fastapi import FastAPI, Query
可选参数
name 可传可不传
# 正常写法 name 为可选参数 @app.get("/user/") async def read_item(age: int, name: str = None ): return {"name": name,"age": age} # 验证写法 name 为可选参数 @app.get("/user/") async def read_item(age: int, name: str = Query(None)): return {"name": name,"age": age}
必选参数
name 必须传
# 正常写法 name 为必选参数 async def read_item(age: int, name: str): return {"name": name,"age": age} # 验证写法 name 为必选参数 async def read_item(age: int, name: str = Query(...)): return {"name": name,"age": age}
默认参数值
# 正常写法 name 默认值 async def read_item(age: int, name: str = "bigdataboy"): return {"name": name,"age": age} # 验证写法 name 默认值 async def read_item(age: int, name: str = Query("bigdataboy")): return {"name": name,"age": age}
Query 验证
Query 主要支持一下验证
- 长度验证:
max_length
、min_length
- 正则验证:
regex
@app.get("/user") # 路径参数 async def read_item( age: int, name: str = Query( ..., # 该参数必选 min_length=1, # 最小长度为 1 max_length=50, # 最大长度为 50 # regex=re.compile(".+bigdataboy.+").pattern # 使用编译的正则表达式 需要导入 re 库 regex=".+bigdataboy.+" # 正则表达式匹配验证 ) ): return {"name": name,"age": age}
其他参数
这些参数主要是对接口进行
描述
@app.get("/user") # 路径参数 async def read_item( age: int, name: str = Query( ..., # 该参数必选 title="name", # 标题 description="用户的新名字", # 参数作用的描述 alias="new-name", # 接口参数别名,URL 参数就使用该别名 deprecated=True, # 代表该参数,即将弃用 ) ): return {"name": name,"age": age}
版权声明:《 【FastAPI】 GET 方法 参数验证 》为明妃原创文章,转载请注明出处!
最后编辑:2020-5-28 12:05:06