序列化程序序列化器
<强> 强>
<强> 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序列化程序序列化使用方法详解