• FastAPI 学习之路(四)


    系列文章:

      FastAPI 学习之路(一)fastapi--高性能web开发框架

      FastAPI 学习之路(二)

      FastAPI 学习之路(三)

      之前的文章分享了如何去在请求中增加参数,本文我们将分享如何增加查询参数。

    有这样的一个需求,我们需要请求参数中增加参数,返回对应参数的值,我们不能在请求路径中增加。

                我们看下在代码中如何实现?

            

    from fastapi import FastAPI
    app = FastAPI()
    data=['北京','上海','深圳']
    @app.get("/items/")
    def read_item(start: int = 0, end: int = 2):
        return data[start:end]
    

      我们默认规定了两个参数,一个是start另一个是end,初始值是0和2,那么我看下请求结果

      那么我们看下增加参数如何返回

     可以正常返回接口参数组合返回的结果。错误的类型返回

      所以,当声明了 Python 类型(在上面的示例中为 int)时,它们将转换为该类型并针对该类型进行校验。

            我们在上面的请求中,我们默认给了默认值,当我们没有给参数的是时候,实际就是。

        

    #请求地址
    http://127.0.0.1:8000/items/
    #实际相当于
    http://127.0.0.1:8000/items/?start=0&end=2
    

        那么假如我们有这样的一个需求,参数end是可选择的参数,有end就返回需求的,没有end 返回所有的。如何实现呢

    from fastapi import FastAPI
    from typing import Optional
    app = FastAPI()
    
    data=['北京','上海','深圳']
    
    @app.get("/items/")
    def read_item(start: int = 0, end: Optional[int] =None):
        if end:
            return data[start:end]
        return  data[start:-1]
    

      我们不传入end参数,接口返回

     当我们传递end参数,默认返回

             这样我们的需求就完成了。

            参数在请求到后端默认给我们转化了,当我们传入的end或者start的类型不对的时候。

     

    这样就是参数类型是自动去转化的。

              

            有这样的一个需求,我们希望start是一个必填的参数,end是一个可以选填的参数,我们应该如何去实现呢。代码如下:

    from fastapi import FastAPI
    from typing import Optional
    app = FastAPI()
    
    data=['北京','上海','深圳']
    
    @app.get("/items/")
    def read_item(start: int , end: Optional[int] =None):
        if end:
            return data[start:end]
        return  data[start:-1]

    我们去请求下:

     当我们输入start参数,看下接口的返回

  • 相关阅读:
    开发中常用js记录(二)
    c# 我所理解的 值类型 and 引用类型
    c# 枚举
    ModelState.IsValid总为false原因
    学习总结 之 WebApi服务监控 log4net记录监控日志
    How to Deinstall Oracle Clusterware Home Manually
    oracle client 低于 oracle server 端,导致报错ORA-01882
    转 zabbix 用户建立和中文化
    转 rman 恢复报错
    10g 升级到11g 失效对象2则
  • 原文地址:https://www.cnblogs.com/leiziv5/p/15333804.html
Copyright © 2020-2023  润新知