zoukankan      html  css  js  c++  java
  • FastAPI 基础学习(十一) 复杂数据类型

    作者:麦克煎蛋   出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢!

    目前为止,我们主要用到了一些通用的数据类型,比如int、float、str、bool等。

    但我们也可以用一些相对复杂的数据类型,并且仍然可以得到以下的功能支持:

    • 编辑器支持
    • 数据格式自动转换
    • 数据格式自动校验
    • 自动生成注解和文档

    下面我们就看一下这些数据类型。

    1、UUID

    标准的通用唯一标识符(Universally Unique Identifier),一般在数据库或者系统中表示ID。

    在requests和responses中被认为是字符串类型

    2、datetime.datetime

    标准的Python datetime.datetime。

    在requests和responses中被认为是字符串类型,例如"2008-09-15T15:53:00+05:00"。

    3、datetime.date

    标准的Python datetime.date

    在requests和responses中被认为是字符串类型,例如"2008-09-15"。

    4、datetime.time

    标准的Python datetime.time

    在requests和responses中被认为是字符串类型,例如"14:23:55.003"。

    5、datetime.timedelta

    标准的Python datetime.timedelta

    在requests和responses中被认为是表示秒数的float类型,例如"2008-09-15"。

    6、frozenset

    在requests和responses中等同于set

    在requests中,列表数据会先进行去重,然后转换成set。

    在responses中,set会被转换成list。

    7、bytes

    标准的Python bytes

    在requests和responses中被认为是字符串类型

    8、Decimal

    标准的Python Decimal

    在requests和responses中被认为是float类型。

    以下是示例:

    from datetime import datetime, time, timedelta
    from uuid import UUID
    
    from fastapi import Body, FastAPI
    
    app = FastAPI()
    
    
    @app.put("/items/{item_id}")
    async def read_items(
        item_id: UUID,
        start_datetime: datetime = Body(None),
        end_datetime: datetime = Body(None),
        repeat_at: time = Body(None),
        process_after: timedelta = Body(None),
    ):
        start_process = start_datetime + process_after
        duration = end_datetime - start_process
        return {
            "item_id": item_id,
            "start_datetime": start_datetime,
            "end_datetime": end_datetime,
            "repeat_at": repeat_at,
            "process_after": process_after,
            "start_process": start_process,
            "duration": duration,
        }
  • 相关阅读:
    java垃圾回收机制
    浮点数比较/运算BigDecimal
    java8新特性_::双冒号
    java的lambda表达式
    【转】DelphiXE10.2.3——跨平台生成验证码图片
    ide fix pack for delph 10.2.3发布了
    使用ALVideoPlayerSurface制作视频播放器
    kbmMWLog同时输出日志到多个日志管理器
    kbmMWLog输出日志到控制台或指定Grid
    推荐内置android控件的开源项目alcinoe
  • 原文地址:https://www.cnblogs.com/mazhiyong/p/12928963.html
Copyright © 2011-2022 走看看