Flask与FastAPi
FastAPI安装与使用
交互式文档
路径与查询参数
参数使用枚举
请求与响应
自定义响应状态码
中间件_计算回调时间
类型与模型
Flask安装与使用
Gunicorn(WSGI服务)
本文档使用MrDoc发布
返回首页
-
+
类型与模型
2021年8月18日 11:07
admin
from datetime import datetime from typing import List, Optional #类型 from pydantic import BaseModel #模型 class User(BaseModel): id: int name = 'John Doe' signup_ts: Optional[datetime] = None friends: List[int] = [] external_data = { 'id': '123', 'signup_ts': '2019-06-01 12:22', 'friends': [1, 2, '3'], } user = User(**external_data) print(user.id) #> 123 print(repr(user.signup_ts)) #> datetime.datetime(2019, 6, 1, 12, 22) print(user.friends) #> [1, 2, 3] print(user.dict()) """ { 'id': 123, 'signup_ts': datetime.datetime(2019, 6, 1, 12, 22), 'friends': [1, 2, 3], 'name': 'John Doe', } """ ####这里发生了什么: #####id 是 int 类型;注释声明告诉pydantic该字段是必须的。如果可能,字符串、字节或浮点数将强制转换为int,否则将引发异常。 #####name 从默认值推断为其为 str 类型,该字段不是必须的,因为它有默认值。 #####signup_ts 是 datetime 类型,该字段不是必须的,默认值为 None。pydantic会将表示unix时间戳(例如1496498400)的 int 类型或表示时间和日期的字符串处理成 datetime 类型。 #####friends 使用Python的 typing 系统,需要一个整数列表,就像 id 字段一样,类整数的对象将会被转换为整数。 ####如果验证失败,pydantic会抛出一个错误,列出错误的原因: ![](/media//202108/2021-08-18110613695539.png) ####输出: ![](/media//202108/2021-08-18110642902065.png) --- #参考资料 ####typing模块的作用: https://www.cnblogs.com/angelyan/p/11121859.html#_label1 ####typing模块Optional类 https://blog.csdn.net/qq_44683653/article/details/108990873、 ####Pydantic官方文档 https://blog.csdn.net/swinfans/article/details/89629641
分享到: