Django Restfu Framework学习笔记

发表日期:2018年4月4日 18:25

使用Django返回JSON

1.1使用Django View返回JSON

from django.views.generic.base import View
from django.http import HttpResponse
# 引入基础类
import json
# 引入JSON

# 文章列表页
class ArticlesView(View):
    def get(self,request):
        articles = Articles.objects.all()
        json_list = []
        for article in articles:
            json_dict = {}
            json_dict["name"] = article.title
            json_dict["content"] = article.content
            json_list.append(json_dict)
        return HttpResponse(json.dumps(json_list),content_type="application/json")

使用此方法返回JSON的缺点是代码量多,实现起来复杂,且不支持序列化例如datatime等类型

1.2使用django的serializer序列化model

from django.views.generic.base import View
from django.http import JsonResponse
# 引入基础类
import json
# 引入JSON

# 文章列表页
class ArticlesView(View):
    def get(self,request):
        articles = Articles.objects.all()
        from django.core import serializers
        # 引入serializers
        json_data = serializers.serialize("json",articles)
        json_data = json.loads(json_data)
        return JsonResponse(json_data,safe=False)

使用此方法的缺点是格式无法修改,图片路径无法正常显示

apiview方式实现商品列表页