fastapi二:数据模型与验证-pydantic

 

pydantic官网:https://pydantic-docs.helpmanual.io/

 

Pydantic 是一个用来用来执行数据校验的 Python 库。
可以将数据的"结构"声明为具有属性的类,然后每个属性都拥有类型。
接着用一些值来创建这个类的实例,这些值会被校验,并被转换为适当的类型(在需要的情况下),返回一个包含所有数据的对象。

 

一:安装和源码

1.1、安装:pip install pydantic

fastapi二:数据模型与验证-pydantic

 

1.2、用 pydantic 做数据模型,所有的数据模型都是继承BaseModel的,先看一下BaseModel类下面都有什么

fastapi二:数据模型与验证-pydantic

fastapi二:数据模型与验证-pydantic

fastapi二:数据模型与验证-pydantic

fastapi二:数据模型与验证-pydantic

fastapi二:数据模型与验证-pydantic

由此可见,只要继承了BaseModel的类,就会有转字典、转json、浅拷贝、自定义字段校验···

 

二:使用pydantic

2.1、声明模型

fastapi二:数据模型与验证-pydantic

2.2、实例化模型

2.2.1、python解包的形式实例化

fastapi二:数据模型与验证-pydantic

2.2.2、用 BaseModel 自带的 parse_obj 方法解析字典

fastapi二:数据模型与验证-pydantic

2.2.3、用 BaseModel 自带的 parse_row 方法解析josn字符串

fastapi二:数据模型与验证-pydantic

2.2.4、用 BaseModel 自带的 parse_file 方法解析文件

fastapi二:数据模型与验证-pydantic

fastapi二:数据模型与验证-pydantic

2.2.5、construct:只实例化模型,不做校验

fastapi二:数据模型与验证-pydantic

 

三、异常处理

如果输入数据不满足数据模型规则则会报错

fastapi二:数据模型与验证-pydantic

由上可见,当数据不满足模型时,会抛出一个 ValidationError ,那么我们可以捕获这个异常(此异常可以转为son),并且抛出自定义的异常

fastapi二:数据模型与验证-pydantic

 

四、递归模型(在其他模型的某一个字段中,嵌套某一个模型)

fastapi二:数据模型与验证-pydantic

 

五、pydantic 模型与 SQLAlchemy 模型结合,验证orm对象

fastapi二:数据模型与验证-pydantic

 

六、PyCharm 安装 pydantic 代码检查插件

fastapi二:数据模型与验证-pydantic

 

上一篇:图片上传


下一篇:FastAPI学习笔记(一)-2.初识Pydantic