首页 > 其他分享 >30-DRF框架-Serializer序列化器

30-DRF框架-Serializer序列化器

时间:2023-02-22 23:33:06浏览次数:35  
标签:None False min max 30 length 序列化 Serializer

# 作用: 序列化器可以进行数据的校验, 对数据对象进行转换
# Django REST framework中的序列化使用类来定义,须继承自rest_framework.serializers.Serializer

# Serializer(instance=None, data=empty, **kwarg)
    用于序列化时,将模型类对象传入instance参数
    用于反序列化时,将要被反序列化的数据传入data参数

序列器字段类型及选项

# 常用字段类型:
# 字段	                # 字段构造方式
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) 'hex_verbose' 如"5ce0e9a5-5ffa-654b-cee0-1238041fb31a"
                        	  2) 'hex' 如 "5ce0e9a55ffa654bcee01238041fb31a"
                        	  3)'int' - 如: "123456789012312313134124512351145145114"
                        	  4)'urn' 如: "urn:uuid:5ce0e9a5-5ffa-654b-cee0-1238041fb31a"
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_length 最小长度
allow_blank 是否允许为空
trim_whitespace 是否截断空白字符
max_value 最小值
min_value 最大值

通用参数:

参数 注释
read_only 表明该字段仅用于序列化输出,默认False
write_only 表明该字段仅用于反序列化输入,默认False
required 表明该字段在反序列化时必须输入,默认True
default 反序列化时使用的默认值
allow_null 表明该字段是否允许传入None,默认False
validators 该字段使用的验证器
error_messages 包含错误编号与错误信息的字典
label 用于HTML展示API页面时,显示的字段名称
help_text 用于HTML展示API页面时,显示的字段帮助提示信息

标签:None,False,min,max,30,length,序列化,Serializer
From: https://www.cnblogs.com/kh-1314/p/17146294.html

相关文章