在前后端分离开发中,对于RESTfulAPI设置,一般需要将查询/更新数据以JSON方式进行返回。
序列化
Model.py
from django.db import models
class User(models.Model):username = models.CharField(verbose_name='用户名',max_length=10)age = models.IntegerField(verbose_name='年龄')email = models.CharField(verbose_name='邮箱',max_length=20)
View.py
from api.models import User
from api.models import userSerializer
class userView(APIView):def get(self,request):queryset = User.objects.all()# 序列化res = userSerializer(instance=queryset, many=True)return Response({'code':200,'msg':'ok','data':res.data})
Url.py
from . import views
from django.urls import pathurlpatterns = [path("user/",views.userView.as_view())
]
1.序列化器类(Serializer)
from rest_framework import serializers
class userSerializer(serializers.Serializer):username = serializers.CharField()age = serializers.CharField()email = serializers.CharField()
2.序列化器类(ModelSerializer)
from rest_framework import serializers
class userSerializer(serializers.ModelSerializer):class Meta:model = Userfields = '__all__'
postman测试get方法
反序列化
DRF序列化器可以将来自客户端的请求数据(通常是JSON数据)转换为Python对象,以便在视图中进行处理。
from api.models import User
from api.models import userSerializer
class userView(APIView):def post(self,request):# 反序列化serializer = userSerializer(data=request.query_params)# 如果验证成功if serializer.is_valid():serializer.save()return Response({'code': 200, 'msg': 'ok'})else:return Response({'code': 201, 'msg': 'error'})
postman测试post方法