创建一个views_base.py文件
# -*- coding: utf-8 -*-
import json
# 导入view
from django.views.generic.base import View
# from django.views.generic import ListView
# 加载模板
from .models import Prize
# 继承View方法
class PrizeView(View):
# 重载get方法
def get(self, request):
"""显示奖品"""
# 创建数组json_list
json_list = []
# 查询prize全部数据
prizes = Prize.objects.all()
# # 可以自己手动添加到json_dict
# for prize in prizes:
# json_dict = {}
# json_dict["name"] = prize.name
# json_dict["grade"] = prize.grade
# json_list.append(json_dict)
# # 可以使用model_to_dict方法
# from django.forms.models import model_to_dict
# for prize in prizes:
# json_dict = model_to_dict(prize)
# json_list.append(json_dict)
# 这是第三种方式 序列化字段
from django.core import serializers
json_data = serializers.serialize("json" ,prizes)
json_list = json.loads(json_data)
#返回到前端方法HttpResponse
from django.http import HttpResponse
return HttpResponse(json.dumps(json_list), content_type="application/json")
在url页面中配置
# 使用re_path 相当于django1中的url
from django.urls import re_path
# 导入写好的PrizeView
from prize.views_base import PrizeView
urlpatterns = [
# 创建url
re_path(r'pz/$', PrizeView.as_view(), name="prize-list")
]