当前位置: 首页 > news >正文

贵阳建设银行网站苏州网站制作出名 乐云践新

贵阳建设银行网站,苏州网站制作出名 乐云践新,做网站搞笑口号,如何在国内做网站Core.Serializers 模块 Django 序列化模块 模块结构 . ├── __init__.py ├── base.py ├── json.py ├── jsonl.py ├── python.py ├── pyyaml.py └── xml_serializer.py1 directory, 7 files自定义序列化器 通过继承django.core.serializers.base.Serial…

Core.Serializers 模块

Django 序列化模块

模块结构

.
├── __init__.py
├── base.py
├── json.py
├── jsonl.py
├── python.py
├── pyyaml.py
└── xml_serializer.py1 directory, 7 files

自定义序列化器

通过继承django.core.serializers.base.Serializer类,可以自定义序列化器。

def serialize(self,queryset,*,stream=None,fields=None,use_natural_foreign_keys=False,use_natural_primary_keys=False,progress_output=None,object_count=0,**options,):"""Serialize a queryset."""self.options = optionsself.stream = stream if stream is not None else self.stream_class()self.selected_fields = fieldsself.use_natural_foreign_keys = use_natural_foreign_keysself.use_natural_primary_keys = use_natural_primary_keysprogress_bar = self.progress_class(progress_output, object_count)self.start_serialization()self.first = Truefor count, obj in enumerate(queryset, start=1):self.start_object(obj)# Use the concrete parent class' _meta instead of the object's _meta# This is to avoid local_fields problems for proxy models. Refs #17717.concrete_model = obj._meta.concrete_model# When using natural primary keys, retrieve the pk field of the# parent for multi-table inheritance child models. That field must# be serialized, otherwise deserialization isn't possible.if self.use_natural_primary_keys:pk = concrete_model._meta.pkpk_parent = (pk if pk.remote_field and pk.remote_field.parent_link else None)else:pk_parent = Nonefor field in concrete_model._meta.local_fields:if field.serialize or field is pk_parent:if field.remote_field is None:if (self.selected_fields is Noneor field.attname in self.selected_fields):self.handle_field(obj, field)else:if (self.selected_fields is Noneor field.attname[:-3] in self.selected_fields):self.handle_fk_field(obj, field)for field in concrete_model._meta.local_many_to_many:if field.serialize:if (self.selected_fields is Noneor field.attname in self.selected_fields):self.handle_m2m_field(obj, field)self.end_object(obj)progress_bar.update(count)self.first = self.first and Falseself.end_serialization()return self.getvalue()

start_serialization方法

序列化开始,可以在这个方法内定义一些初始化操作,或者日志或者提前的数据准备工作。

start_object方法

每个对象序列化开始时调用。

end_object方法

每个对象序列化结束时调用。

handle_field方法

对象字段序列化时调用。

handle_fk_field方法

处理外键字段时调用。

handle_m2m_field方法

处理多对多字段时调用。

getvalue方法

返回序列化结果。

总结

Django 提供了一系列格式的序列化器使用,包括json,jsonl,yaml,xml,python等。
通过继承Serializer类,可以自定义序列化器。自定义后的序列化器可以通过在settings.py配置 SERIALIZATION_MODULES 变量将自定义的序列化器注册到 Django serializers 工作流中,而无需使用时自己调用。

# settings.py
SERIALIZATION_MODULES = {"msgpack": "path.to.msgpack.Serializer",
}# other.py
from django.core import serializersserializers.serialize("msgpack", queryset) # 避免了项目中直接导入自定义序列化器使用
http://www.yayakq.cn/news/964496/

相关文章:

  • 做网站排名的公司seo联盟怎么赚钱
  • 火鸟门户官方网站discuz好还是wordpress
  • 手机免费创建网站的软件网站服务器有问题怎么办啊
  • 网站后续建设河北专业做网站
  • 广州市网站集约化建设深圳公明做网站
  • 代做施组 方案的网站长沙制作网站
  • 低价网站建设费用预算wordpress使用非80端口
  • 搜狗网站手工制作教程
  • 天河网站建设系统网站开发公司模板
  • 建立一个公司自己的网站做网站首页图片
  • 威海做网站公司前端seo是什么意思
  • 怎么建立织梦网站新网站建设代理商
  • 高端品牌网站建设专人一对一服务触屏版网站开发样式
  • 用vultr做网站营销策划的作用
  • 网站注册备案没有学历找什么工作比较好
  • 如何做app推广网站建设和优化内容最重要
  • 中心网站建设网站建设作业过程
  • 凯里网站设计公司全平台响应式网站建设
  • 织梦网站备案如何做简单的网站 域名邮箱
  • 介绍一个电影的网站模板网页游戏开服表源码
  • 网站建设排行网络规划设计师贴吧
  • 佛山网站苏州企业网站建设制作服务
  • 云服务器如何搭建网站饲料公司网站建设方案
  • 帝国行业网站模板兰溪网站建设公司
  • 做爰明星视频网站企业官网有哪些
  • 网站手机客户端如何开发省住房城乡建设厅
  • 广东手机网站制作价格公司网站建设需要注意哪些问题
  • 上哪里建设个人网站深圳家装公司十大排名
  • 假发网站建设网站加水印
  • 网站备案号 脱离服务商外国 网站模板