python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python  fastapi

python中fastapi设置查询参数可选或必选

作者:​ 小飞牛   ​

这篇文章主要介绍了python中fastapi设置查询参数可选或必选,文围绕主题展开详细的内容介绍,具有一定的参考价值需要的小伙伴可以参考一下

前言:

在fastapi中,我们定义的查询参数是可以设置成:必选参数 or 可选参数。

可选查询参数

 from fastapi import FastAPI
 ​
 app = FastAPI()​
 @app.get("/items/{item_id}")
 async def read_item(item_id: str, q=None):
     data = {"item_id": item_id}
     if q:
         data["q"] = q
     return data

补充:此时路径操作函数内的参数有两个,一个是路径参数item_id,一个是查询参数q,fastapi是可以区分他们的。

必选查询参数

 from fastapi import FastAPI
 ​
 app = FastAPI()​
 @app.get("/items/{item_id}")
 async def read_user_item(item_id: str, needy: str):
     item = {"item_id": item_id, "needy": needy}
     return item
 {
     "detail": [
         {
             "loc": [
                 "query",
                 "needy"
             ],
             "msg": "field required",
             "type": "value_error.missing"
         }
     ]
 }

可选和必选参数共存

 from fastapi import FastAPI
 ​
 app = FastAPI()
 @app.get("/items/{item_id}")
 async def read_user_item(
     item_id: str, needy: str, skip: int = 0, limit=None
 ):
     item = {"item_id": item_id, "needy": needy, "skip": skip, "limit": limit}
     return item

为可选参数做类型提示

 from typing import Union​
 from fastapi import FastAPI
 app = FastAPI()​
 @app.get("/items/{item_id}")
 async def read_item(item_id: str, q: Union[int, None] = None):
     data = {"item_id": item_id}
     if q:
         data["q"] = q
     return data

补充1:

补充2:

到此这篇关于python中fastapi设置查询参数可选或必选的文章就介绍到这了,更多相关python fastapi 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文