from rest_framework import serializers from demo.models import Student
# 第一种序列化方式 classStudentSerializer(serializers.Serializer): id = serializers.CharField(read_only=True) username = serializers.CharField(required=False) password = serializers.CharField(required=False) email = serializers.CharField(required=False) # 用于对浏览器的上的显示 have = serializers.CharField(required=False)
defcreate(self, validated_data): """ Create and return a new `Student` instance, given the validated data. """ return Student.objects.create(**validated_data)
defupdate(self, instance, validated_data): """ Update and return an existing `Student` instance, given the validated data. """ instance.id = validated_data.get('id', instance.id) instance.username = validated_data.get('username', instance.username) instance.password = validated_data.get('password', instance.password) instance.email = validated_data.get('email', instance.email) instance.have = validated_data.get('have', instance.have) instance.save() return instance
from demo.models import Student from django.http import HttpResponse, JsonResponse from django.views.decorators.csrf import csrf_exempt from rest_framework.parsers import JSONParser from demo.serializers import StudentSerializer,StSerializer
@csrf_exempt defstudentList(request): """ List all code snippets, or create a new snippet. """ if request.method == 'GET': snippets = Student.objects.all() serializer = StudentSerializer(snippets, many=True) # serializer = StSerializer(snippets, many=True) # 一样的结果 return JsonResponse(serializer.data, safe=False)
elif request.method == 'POST': data = JSONParser().parse(request) serializer = StudentSerializer(data=data) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data, status=201) return JsonResponse(serializer.errors, status=400)