方案1:

# 方案1view.py文件
import json
from django.shortcuts import HttpResponse
from rest_framework.views import APIView
from .models import Course


class CourseView(APIView):
    def get(self, request):
        course_list = list()
        for course in Course.objects.all():
            course = {
                "course_name": course.course_name,
                "description": course.description
            }
            course_list.append(course)
        return HttpResponse(json.dumps(course_list, ensure_ascii=False))

方案2:

# 方案2views.py文件内容
# 导入Django原生的序列化模块
from django.core.serializers import serialize
from rest_framework.views import APIView
from .models import Course
from django.shortcuts import HttpResponse

class CourseView(APIView):
    def get(self, request):
        origin_data = Course.objects.all()
        # 开始序列化
        serialized_data = serialize("json", origin_data)
        print(serialized_data)
        return HttpResponse(serialized_data)

注意:JsonResponse只能对字典操作,其他不行.题外话,不知道的可以不用理会

以上两种方法使用的是一个数据库表模型.

models.py文件

class Course(models.Model):
    course_name = models.CharField(max_length=32)
    description = models.CharField(max_length=128)

    def __str__(self):
        return self.course_name