Pydantic serialisation 结合 tortoise-orm 使用文档
文档摘自个人博客:torna.top
文章原文档 Pydantic serialisation 结合 tortoise-orm 使用文档
参考 Pydantic serialisation 中文文档 (完整版)
个人博客阅读效果更佳,同时欢迎评论区反馈 !!!
模型序列化
- 创建 tortoise-orm 模型
from tortoise import fields
from tortoise.models import Model
class Tournament(Model):
"""
This references a Tournament
"""
id = fields.IntField(primary_key=True)
name = fields.CharField(max_length=100)
#: The date-time the Tournament record was created at
created_at = fields.DatetimeField(auto_now_add=True)
- 创建 pydantic 模型
from tortoise.contrib.pydantic import pydantic_model_creator
# 调用pydantic_model_creator()函数,传入模型类,生成pydantic模型类
Tournament_Pydantic = pydantic_model_creator(Tournament)
- 查看 Pydantic 模型的 JSON-Schema
# 调用schema()方法,查看Pydantic模型的JSON-Schema
# 输出结果为JSON-Schema格式的字符串,包含类和文档字符串和文档注释
>>> print(Tournament_Pydantic.schema())
{
'title': 'Tournament',
'description': 'This references a Tournament',
'type': 'object',
'properties': {
'id': {
'title': 'Id',
'type': 'integer'
},
'name': {
'title': 'Name',
'type': 'string'
},
'created_at': {
'title': 'Created At',
'description': 'The date-time the Tournament record was created at',
'type': 'string',
'format': 'date-time'
}
}
}
- 序列化对象
# 在Tournament模型上调用create()方法,创建新的数据库记录,返回一个tournament
tournament = await Tournament.create(name="New Tournament")
tourpy = await Tournament_Pydantic.from_tortoise_orm(tournament)
序列化:
- 把内存中的各种数据类型的数据通过网络传送给其他机器或者客户端
- 把内存中的各种数据类型的数据保存到本地磁盘持久化
- 反序列化则相反,把网络传输或者本地磁盘持久化的数据转换为内存中的各种数据类型
- 查看 Pydantic 模型序列化后的对象
# 调用model_dump()方法,将pydantic模型对象序列化为python字典
>>> print(tourpy.model_dump())
{
'id': 1,
'name': 'New Tournament',
'created_at'