django序列化程序序列化使用方法详解

  

序列化程序序列化器
  

  

<强>
  

  

<强> 1。定义方法
  

  

Django框架中休息的序列化器使用类来定义,须继承自rest_framework.serializers.Serializer。

  

例如,我们已有了一个数据库模型类BookInfo

        类BookInfo (models.Model):   btitle=模型。CharField (max_length=20, verbose_name='名称”)   bpub_date=模型。DateField (verbose_name='发布日期",null=True)   面包=模型。IntegerField(默认=0,verbose_name='阅读量”)   bcomment=模型。IntegerField(默认=0,verbose_name='评论量”)   形象=模型。ImageField (upload_to=booktest, verbose_name=巴肌逼?null=True)      

我们想为这个模型类提供一个序列化器,可以定义如下:

        类BookInfoSerializer (serializers.Serializer):   “”图书数据序列化器”“   id=序列化器。IntegerField(标签=癐D”, read_only=True)   btitle=序列化器。CharField(标签='名称,max_length=20)   bpub_date=序列化器。DateField(标签='发布日期”,要求=False)   面包=序列化器。IntegerField(标签='阅读量”,要求=False)   bcomment=序列化器。IntegerField(标签='评论量”,要求=False)   形象=序列化器。ImageField(标签='图片”,要求=False)   之前      

注意:序列化器不是只能为数据库模型类定义,也可以为非数据库模型类的数据定义.serializer是独立于数据库之外的存在。

  

<强> 2。字段与选项
  

  

常用字段类型:

  

           字段   字段构造方式               BooleanField   BooleanField ()         NullBooleanField   NullBooleanField ()         CharField   CharField (max_length=None, min_length=None, allow_blank=False, trim_whitespace=True)         EmailField   EmailField (max_length=None, min_length=None, allow_blank=False)         RegexField   RegexField (regex max_length=None, min_length=None, allow_blank=False)         SlugField   SlugField(最大长度=50,min_length=None, allow_blank=False)
  正则字段,验证正则模式a-zA-Z0-9 - +         URLField   URLField (max_length=200, min_length=None, allow_blank=False)         UUIDField   UUIDField(格式=hex_verbose)
  格式:
  1)“hex_verbose”如“5 ce0e9a5 - 5 - ffa - 654 b - cee0 - 1238041 - fb31a”
  2)“六角”如“5 ce0e9a55ffa654bcee01238041fb31a”
  3)“int”——如:“123456789012312313134124512351145145114”
  4)“瓮”如:“urn: uuid: 5 ce0e9a5 - 5 - ffa - 654 b - cee0 - 1238041 - fb31a”         IPAddressField   IPAddressField(协议=肌?unpack_ipv4=False, * *选项)         IntegerField   IntegerField (max_value=https://www.yisu.com/zixun/None, min_value=没有)         实域   实域(max_value=None, min_value=没有)         DecimalField   DecimalField (max_digits decimal_places coerce_to_string=None, max_value=None, min_value=None)
  max_digits:最多位数
  decimal_palces:小数点位置         DateTimeField=api_settings DateTimeField(格式。DATETIME_FORMAT input_formats=None)         DateField   DateField(格式=api_settings。DATE_FORMAT input_formats=None)         TimeField=api_settings TimeField(格式。TIME_FORMAT input_formats=None)         DurationField   DurationField ()         ChoiceField   ChoiceField(选择)
  选择与Django的用法相同         MultipleChoiceField   MultipleChoiceField(选择)         FileField   FileField (max_length=None, allow_empty_file=False, use_url=UPLOADED_FILES_USE_URL)         ImageField   ImageField (max_length=None, allow_empty_file=False, use_url=UPLOADED_FILES_USE_URL)         ListField   ListField(孩子=min_length=None, max_length=没有)         DictField   DictField(孩子=)            

  

选项参数:

  

           参数名称   作用               max_length   最大长度         min_lenght   最小长度         allow_blank   是否允许为空         trim_whitespace   是否截断空白字符         max_value   最小值         min_value   最大值            

django序列化程序序列化使用方法详解