国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

django Serializer序列化使用方法詳解

2020-02-15 23:13:34
字體:
來源:轉載
供稿:網友

Serializer序列化器

定義Serializer

1. 定義方法

Django REST framework中的Serializer使用類來定義,須繼承自rest_framework.serializers.Serializer。

例如,我們已有了一個數據庫模型類BookInfo

class BookInfo(models.Model):  btitle = models.CharField(max_length=20, verbose_name='名稱')  bpub_date = models.DateField(verbose_name='發布日期', null=True)  bread = models.IntegerField(default=0, verbose_name='閱讀量')  bcomment = models.IntegerField(default=0, verbose_name='評論量')  image = models.ImageField(upload_to='booktest', verbose_name='圖片', null=True)

我們想為這個模型類提供一個序列化器,可以定義如下:

class BookInfoSerializer(serializers.Serializer):  """圖書數據序列化器"""  id = serializers.IntegerField(label='ID', read_only=True)  btitle = serializers.CharField(label='名稱', max_length=20)  bpub_date = serializers.DateField(label='發布日期', required=False)  bread = serializers.IntegerField(label='閱讀量', required=False)  bcomment = serializers.IntegerField(label='評論量', required=False)  image = serializers.ImageField(label='圖片', required=False)

注意:serializer不是只能為數據庫模型類定義,也可以為非數據庫模型類的數據定義。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(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=)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吕梁市| 黔西县| 平乐县| 秦皇岛市| 平泉县| 龙里县| 宝应县| 银川市| 溆浦县| 顺昌县| 朝阳县| 武陟县| 垫江县| 修文县| 阜阳市| 常州市| 铜川市| 阆中市| 张家界市| 兖州市| 济阳县| 兴安盟| 丰原市| 凤城市| 化隆| 禹州市| 察哈| 石棉县| 宁波市| 台南县| 应用必备| 稷山县| 周口市| 新兴县| 纳雍县| 眉山市| 鄂尔多斯市| 鄂托克前旗| 沙坪坝区| 永兴县| 天气|