当前位置:   article > 正文

5.请求体、混合参数、嵌套请求体(FastAPI)_fastapi 请求体

fastapi 请求体

请求体、混合参数、嵌套请求体

  • Request Body and Fields请求体和字段

    class CityInfo(BaseModel):
        city_name: str = Field(...,example='城市名称')  #example是注解的作用,值不会被验证
        country_name: Optional[str]=None
        population : int = Field(default=800,description='城市人口',ge=800)
    
        class Config:
            schema_extra={
                'example': {
                    'city_name': 'Shanghai',
                    'country_name': 'China',
                    'population': 36648000,
                }
            }
            
    @app01.post('/city/')
    async def city_info(city: CityInfo):
        # return {'name': city.city_name,
        #         'country_name': city.country_name,
        #         'population': city.population
        #         }
        return city.dict()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ba3OPPve-1636984592405)(5.%E8%AF%B7%E6%B1%82%E4%BD%93%E3%80%81%E6%B7%B7%E5%90%88%E5%8F%82%E6%95%B0%E3%80%81%E5%B5%8C%E5%A5%97%E8%AF%B7%E6%B1%82%E4%BD%93.assets/image-20210614103505650.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBIXC56M-1636984592407)(5.%E8%AF%B7%E6%B1%82%E4%BD%93%E3%80%81%E6%B7%B7%E5%90%88%E5%8F%82%E6%95%B0%E3%80%81%E5%B5%8C%E5%A5%97%E8%AF%B7%E6%B1%82%E4%BD%93.assets/image-20210614103631079.png)]

  • 混合参数

    """混合参数"""
    @app01.put('/city_alter/{city_name}')
    async def city_alter(
            city_name:str,
            city1:CityInfo,
            city2:CityInfo,
            all_population: int = Query(default=140000000,description='国家总人口')
    ):
        if city_name == 'Shanghai':
            return {
                    'city_name': 'Shanghai',
                    'country_name': 'China',
                    'population': 36648000,
                    'all_popuplation': all_population
                }
        return city1.dict(),city2.dict()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ZEW0g3Q-1636984592409)(5.%E8%AF%B7%E6%B1%82%E4%BD%93%E3%80%81%E6%B7%B7%E5%90%88%E5%8F%82%E6%95%B0%E3%80%81%E5%B5%8C%E5%A5%97%E8%AF%B7%E6%B1%82%E4%BD%93.assets/image-20210614104003603.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WhVDST2g-1636984592423)(5.%E8%AF%B7%E6%B1%82%E4%BD%93%E3%80%81%E6%B7%B7%E5%90%88%E5%8F%82%E6%95%B0%E3%80%81%E5%B5%8C%E5%A5%97%E8%AF%B7%E6%B1%82%E4%BD%93.assets/image-20210614104029607.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TINJ651K-1636984592424)(5.%E8%AF%B7%E6%B1%82%E4%BD%93%E3%80%81%E6%B7%B7%E5%90%88%E5%8F%82%E6%95%B0%E3%80%81%E5%B5%8C%E5%A5%97%E8%AF%B7%E6%B1%82%E4%BD%93.assets/image-20210614104114520-1636980838642.png)]

  • 嵌套请求体

    """嵌套请求体"""
    class CityInfo(BaseModel):
        city_name: str = Field(...,example='城市名称')  #example是注解的作用,值不会被验证
        country_name: Optional[str]=None
        population : int = Field(default=800,description='城市人口',ge=800)
    
        class Config:
            schema_extra={
                'example': {
                    'city_name': 'Shanghai',
                    'country_name': 'China',
                    'population': 36648000,
                }
            }
    
    class Data(BaseModel):
        city_list:List[CityInfo]=None  #这里就是定义数据格式嵌套的请求体
        total_population:int = Field(description='人口总数',default=1200000)
        date:date
    
    
    @app01.post('/data/')
    def get_data(data:Data):
        return data.dict()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xYA5jN1B-1636984592427)(5.%E8%AF%B7%E6%B1%82%E4%BD%93%E3%80%81%E6%B7%B7%E5%90%88%E5%8F%82%E6%95%B0%E3%80%81%E5%B5%8C%E5%A5%97%E8%AF%B7%E6%B1%82%E4%BD%93.assets/image-20210614110714523.png)]

    • 添加beijing 城市参数

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jj2BW2mO-1636984592428)(5.%E8%AF%B7%E6%B1%82%E4%BD%93%E3%80%81%E6%B7%B7%E5%90%88%E5%8F%82%E6%95%B0%E3%80%81%E5%B5%8C%E5%A5%97%E8%AF%B7%E6%B1%82%E4%BD%93.assets/image-20210614111156075.png)]

    • 返回

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T3CqhKgl-1636984592430)(5.%E8%AF%B7%E6%B1%82%E4%BD%93%E3%80%81%E6%B7%B7%E5%90%88%E5%8F%82%E6%95%B0%E3%80%81%E5%B5%8C%E5%A5%97%E8%AF%B7%E6%B1%82%E4%BD%93.assets/image-20210614111229135.png)]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/416543
推荐阅读
相关标签
  

闽ICP备14008679号