Django框架序列化与反序列化操作详解

本文实例讲述了Django框架序列化与反序列化操作。分享给大家供大家参考,具体如下:

Serializer类

1.定义:

Django REST
framework中的Serializer使用类来定义,须继承rest_framework.serializers.Serializer。

例:


    class BookInfoSerializer(serializers.Serializer):
     """图书数据序列化器"""
     id = serializers.IntegerField(label='ID', read_only=True)
     name = serializers.CharField(label='名称', max_length=20)
     pub_date = serializers.DateField(label='发布日期', required=False)
     readcount = serializers.IntegerField(label='阅读量', required=False)
     commentcount = serializers.IntegerField(label='评论量', required=False)
     image = serializers.ImageField(label='图片', required=False)
    
    

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(maxlength=50, min_length=None, allow_blank=False)
正则字段,验证正则模式 [a-zA-Z0-9-]+
URLField | URLField(max_length=200, min_length=None, allow_blank=False)
UUIDField | UUIDField(format=‘hex_verbose’) format: 1)
IPAddressField | IPAddressField(protocol=‘both’, unpack_ipv4=False,
**options)
IntegerField | IntegerField(max_value=None, min_value=None)
FloatField | FloatField(max_value=None, min_value=None)
DecimalField | DecimalField(max_digits, decimal_places,
coerce_to_string=None, max_value=None, min_value=None) max_digits: 最多位数
decimal_palces: 小数点位置
DateTimeField | DateTimeField(format=api_settings.DATETIME_FORMAT,
input_formats=None)
DateField | DateField(format=api_settings.DATE_FORMAT, input_formats=None)
TimeField | TimeField(format=api_settings.TIME_FORMAT, input_formats=None)
DurationField | DurationField()
ChoiceField | ChoiceField(choices) choices与Django的用法相同
MultipleChoiceField | MultipleChoiceField(choices)
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(child=, min_length=None, max_length=None)
DictField | DictField(child=)

选项参数:

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

通用参数:

参数名称 说明
read_only 表明该字段仅用于序列化输出,默认False
write_only 表明该字段仅用于反序列化输入,默认False
required 表明该字段在反序列化时必须输入,默认True
default 反序列化时使用的默认值
allow_null 表明该字段是否允许传入Noneÿ

你可能感兴趣的:(Python,python,spark,hadoop)