django3 返回前端json数据的的三种方法

创建一个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")
]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值