DRF(django-rest_framework)框架

views.py

from django.shortcuts import render
# Create your views here.
from rest_framework import serializers
from rest_framework.views import APIView
from rest_framework.exceptions import ValidationError
from rest_framework.response import Response
from rest import models


class SourceSerializer(serializers.Serializer):

    name = serializers.CharField()#获取字段数据后进行序列化

    def validate_name(self, value):  #添加的验证规则 类似
        if '' in value:
            raise ValidationError('不符合社会主义核心价值观')
        return value


class SourceModel(serializers.ModelSerializer):
    group = serializers.CharField(source='group.num') #获取字段中不可见的内容source='get_字段_display', 比如choices中的文字

                                                        #跨表通过fk.属性名(group.num) 赋值给字段名group
    class Meta: #指定表
        model = models.User
        fields = "__all__"
        depth = 1#跨表深度(跨越一张表)


from django.http import JsonResponse
from django.views import View


class SourceView(APIView):

    def get(self, request, *args, **kwargs):
        res = {"code": 0}
        all_source = models.User.objects.all()
        ser_obj = SourceModel(all_source, many=True)#多个字段序列需要加param:many=True
        print(ser_obj.data)#获取序列化后的数据
        res["data"] = ser_obj.data
        return JsonResponse(res)#rest_framework中的Response 需要注册app: rest_framework 因为要条用其中api.html

猜你喜欢

转载自www.cnblogs.com/qlshao/p/10250766.html