django 返回json

django返回json有以下三个版本

from django.http import HttpResponse
import json

from django.views import View
from django.views.generic import ListView

from goods.models import Goods


class GoodsListView(View):
    def get(self, request):
        """
        通过django的View实现商品列表
        :param request:
        :return:
        """
        json_list = []
        goods = Goods.objects.all()[:10]

        # 版本1
        # for good in goods:
        #     json_dict = {}
        #     json_dict["name"] = good.name
        #     json_dict["category"] = good.category.name
        #     json_dict["market_price"] = good.market_price
        #     json_dict["add_time"] = good.add_time
        #     json_list.append(json_dict)

        # 优化版本1->版本2
        # from django.forms.models import model_to_dict
        # for good in goods:
        #     json_dict = model_to_dict(good)
        #     json_list.append(json_dict)
        # return HttpResponse(json.dumps(json_list), content_type="application/json")

        # 优化版本2->版本3
        from django.core import serializers
        from django.http import JsonResponse
        json_data = serializers.serialize("json", goods)
        result = json.loads(json_data)
        return JsonResponse(result, safe=False)  # 不加safe=False的话必须返回dict
原文地址:https://www.cnblogs.com/chenyishi/p/10653156.html