restful 编写规则,表征性状态转移。通过http协议将网上的实体通过get/post/put/delete进行操作。而传递实体,是通过json形式传递。
django+http协议
django自带的json格式转换json.dumps()将json格式转化成字符串,通过djangoviews进行函数处理,获得数据后,然后通过json.load()将字符串格式转化成json格式,通过url,http传到网上。
而django自身不能对datetime和image进行转化成json数据,因此出现了serializers这个包,可以处理,将所有数据格式转化成json格式,
import json from django.core import serializers json_data = serializers.serialize("json", goods)
然后通过JsonResponse()将json格式数据传回给客户端。浏览器解析json(json是javascript对象表示方法)
这样django通过serializer进行对实体进行json转换,然后通过JsonResponse返回html。
ModelSerializer
类提供了一个快捷方式,可让你基于 Models
自动创建一个 Serializer
类,其中的字段与模型类字段对应。
ModelSerializer
类与常规 Serializer
类相同,不同之处在于:
-
它会根据模型自动生成一组字段。
-
它会自动为序列化类生成验证器,例如
unique_together
验证器。 -
它包含
.create()
和.update()
的简单默认实现。
声明 ModelSerializer
如下所示:
from rest_framework import serializers
class AccountSerializer(serializers.ModelSerializer):
class Meta:
# 指定对哪个模型进行序列化
model = Account
# 指定包含哪些字段
fields = ('id', 'account_name', 'users', 'created')
默认情况下,该类中的所有模型类字段将被映射为相应的序列化类字段。
任何关系(如模型上的外键)都将映射到 PrimaryKeyRelatedField
。除非在序列化关系文档中指定,否则默认不包括反向关系。