# 获取课程的视图 from django.shortcuts import HttpResponse from rest_framework.views import APIView from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer from api import models from api.serializers.course import CourseSerializer # 导入序列化插件 import json class CourseView(APIView): renderer_classes = [JSONRenderer,BrowsableAPIRenderer] # 渲染器 ret = {'code':1000,'data':None,'error':None} def get(self,request,*args,**kwargs): # course_list是一个queryset = [obj,obj] QuerySet,是django的类型 course_list = models.DegreeCourse.objects.all().only('id','name') ser= CourseSerializer(instance=course_list,many=True) # 取到序列化器要实例化 # querydict 是django的 OrderedDict 是Python的 print(ser.data,type(ser.data)) # 所以json.dumps就可以对数据进行序列化 print(json.dumps(ser.data)) # [{"id": 1, "name": "21\u5929\u5b66\u4f1apython\u57fa\u7840"}, {"id": 3, "name": "java\u9879\u76ee"}, {"id": 2, "name": "python\u67b6\u6784"}] return HttpResponse("6666")
当打印数据出现乱码,可添加ensure_ascii=False
注意点
querydict 是django的 OrderedDict 是Python的
from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer # 渲染器 + BrowsableAPIRenderer 是用框架提供的模板