如何使用 Django框架进行数据序列化?
步骤:
- **定义模型:**首先,您需要定义一个模型类,该模型将用于存储数据。
class MyModel(models.Model):
name = models.CharField(max_length=255)
age = models.IntegerField()
- **使用
serializers.ModelSerializer
类序列化模型:**使用serializers.ModelSerializer
类序列化模型。该类会将模型的属性作为 JSON 字符串输出。
from rest_framework import serializers
class MySerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
- **使用
serializers.Serializer
类序列化单个模型:**使用serializers.Serializer
类序列化单个模型。该类会将模型的属性作为 JSON 字符串输出,并使用context
参数指定序列化上下文。
from rest_framework import serializers
class MySerializer(serializers.Serializer):
name = serializers.CharField(max_length=255)
age = serializers.IntegerField()
def to_representation(self, serializer):
return {
'name': serializer.data['name'],
'age': serializer.data['age'],
}
- **使用
serializers.SerializerSet
类序列化多个模型:**使用serializers.SerializerSet
类序列化多个模型。该类会将模型的属性作为 JSON 字符串输出,并使用context
参数指定序列化上下文。
from rest_framework import serializers
class MySerializer(serializers.SerializerSet):
models = [MyModel]
def to_representation(self, serializer):
return {
'data': [
{'name': m.name, 'age': m.age} for m in serializer.model_instances
]
}
注意:
-
serializers.ModelSerializer
和serializers.Serializer
类支持多种数据类型,包括字符串、数字、列表和字典。 -
context
参数允许您指定序列化上下文,例如请求上下文或视图上下文。 - 您可以使用
render()
方法将序列化后的 JSON 字符串返回给客户端。