Django中的小知识点
发布时间:2020-12-20 11:01:46 所属栏目:Python 来源:网络整理
导读:在返回json对象的几种方式: 1 from django.shortcuts import render,HttpResponse # Create your views here. from django.views import View from app01 import models import json class BookListView(View): """ 使用json进行json序列化 """ def get(sel
在返回json对象的几种方式:1 from django.shortcuts import render,HttpResponse # Create your views here. from django.views import View from app01 import models import json class BookListView(View): """使用json进行json序列化""" def get(self,request): """以json形式返回书籍的列表""" # 1. 获取所有的书籍对象 # models.Book.objects.all() queryset 类型的对象,不能直接json queryset = models.Book.objects.all().values(‘id‘,‘title‘,) # 2. 将数据序列化成json格式 date类型的数据不能直接系列化 ensure_ascii=False 修改乱码的现象 ret = json.dumps(list(queryset),ensure_ascii=False) # 3. 返回 return HttpResponse(ret) 2 使用JsonResponse返回数据。实现简单的序列化 from django.http.response import JsonResponse class BookListView(View): """使用JsonResponse进行json序列化""" def get(self,request): """以json形式返回书籍的列表""" # 1. 获取所有的书籍对象 queryset = models.Book.objects.all() ? ?3 用django内置的进行json序列化 from django.core import serializers class BookListView(View): """使用django内置的进行json序列化""" def get(self,request): """以json形式返回书籍的列表""" # 1. 获取所有的书籍对象 queryset = models.Book.objects.all() # 2. 将数据序列化成json格式 data = serializers.serialize(‘json‘,queryset=queryset) # 3. 返回 return HttpResponse(data) 4使用djangorestful进行json序列化 class BookSerializer(serializers.Serializer): id = serializers.IntegerField(required=False) title = serializers.CharField() pub_date = serializers.DateField() #python -m pip install djangorestframework # 在setting.py中 将rest_framework 写下 INSTALLED_APPS列表中 from rest_framework.views import APIView from rest_framework.response import Responseclass BookListView(APIView): """使用djangorestful进行json序列化""" def get(self,request): """以json形式返回书籍的列表""" # 1. 获取所有的书籍对象 queryset = models.Book.objects.all() # 2. 将数据序列化成json格式,many=True将数据一个一个的循环 ser_obj = BookSerializer(queryset,many=True) # 3. 返回 return Response(ser_obj.data) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |