美文网首页
05 FastApi的路径参数和数值校验

05 FastApi的路径参数和数值校验

作者: 萧酃 | 来源:发表于2022-05-20 10:16 被阅读0次

    FastApi允许用户添加额外声明和校验

    @app.get("/extra_para")
    async def extra_paramaters(normal_int:int=None,
                               normal_str:str=None,
                               union :Union[int,str] = None):
        """
    
        :param normal_int: 类型必须为int
        :param normal_str: 类型必须为int
        :param union: 类型必须为int或者str
        :return:
        """
        return {"normal_int":normal_int,
                "normal_str":normal_str,
                "union":union}
    

    1> 额外的校验——导入Query

    from fastapi import Query
    @app.get("/extra_param/")
    async def Extra_Parameters(union :Union[int,str]=Query(
                                   default=None,
                                   max_length=50,
                                   min_length=5
                               )):
        """
        :param union: 此处添加的额外的校验,默认是None
                      可为int类型,可为str类型,为str类型时 字符长度5<=len<=50
        :return:
        """
        return {"union":union}
    
    

    2> Query 用与查询参数校验

    def Query(  # noqa: N802
        default: Any,
        # 默认值 当default = ..., 表明该参数为必须
        *,
        alias: Optional[str] = None,
        # 别名
        title: Optional[str] = None,
        description: Optional[str] = None,
        gt: Optional[float] = None,
        ge: Optional[float] = None,
        lt: Optional[float] = None,
        le: Optional[float] = None,
        min_length: Optional[int] = None,
        max_length: Optional[int] = None,
        regex: Optional[str] = None,
        # 正则表达式
        example: Any = Undefined,
        examples: Optional[Dict[str, Any]] = None,
        deprecated: Optional[bool] = None,
        **extra: Any,
    ) -> Any:
    

    3> Path 用于路径参数的校验, 用法与Query基本相同

    def Path(  # noqa: N802
        default: Any,
        *,
        alias: Optional[str] = None,
        title: Optional[str] = None,
        description: Optional[str] = None,
        gt: Optional[float] = None,
        ge: Optional[float] = None,
        lt: Optional[float] = None,
        le: Optional[float] = None,
        min_length: Optional[int] = None,
        max_length: Optional[int] = None,
        regex: Optional[str] = None,
        example: Any = Undefined,
        examples: Optional[Dict[str, Any]] = None,
        deprecated: Optional[bool] = None,
        **extra: Any,
    ) -> Any:
    

    相关文章

      网友评论

          本文标题:05 FastApi的路径参数和数值校验

          本文链接:https://www.haomeiwen.com/subject/yynsertx.html