您好,登錄后才能下訂單哦!
序列化是將對象狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為對象。這兩個過程結合起來,可以輕松地存儲和傳輸數據
方法一:通過繼承View類,重寫get方法,獲取商品的前是前十條數據,通過serialize序列化數據,返回數據響應。
from django.views.generic import View from goods.models import Goods from django.core import serializers from django.http import HttpResponse class GoodsListView(View): def get(self,request): """ 通過django的view實現商品列表頁 :param request: :return: """ #返回前所有商品的前10條數據 goods_list = Goods.objects.all()[:10] #直接轉換成json類型的字符串 data = serializers.serialize("json",goods_list) #注意要加上:"application/json",否則在瀏覽器顯示不正常 return HttpResponse(data,"application/json")
方法二:通過繼承View類,重寫get方法,獲取指定獲取某些字段商品的前十條數據,通過serialize序列化數據,返回數據響應。
from django.views.generic import View from goods.models import Goods from django.http import HttpResponse import json class GoodsListView(View): #重寫get方法 #django返回第一種方式 def get(self,request): # 得到商品前10條數據 goods=Goods.objects.all()[:10] goods_list=[] for good in goods: item={} item['name']=good.name item['click_num']=good.click_num item['shop_price']=good.shop_price goods_list.append(item) response_data=json.dumps(goods_list,ensure_ascii=False) #python字符串 設置為utf-8編碼 return HttpResponse(response_data,'application/json')
方法三:使用Jsonresponse,通過繼承View類,重寫get方法,獲取商品的前是前十條數據,通過serialize序列化數據,返回數據響應,工作中我們常用第三種方法返回JSON數據。
from django.views.generic import View from goods.models import Goods from django.core import serializers import json from django.http import JsonResponse class GoodsListView(View): def get(self,request): """ 通過django的view實現商品列表頁 :param request: :return: """ #返回前所有商品的前10條數據 goods_list = Goods.objects.all()[:10] #序列化,把內存中的python對象,轉換成網絡中能夠傳輸的對象 #直接轉換成json類型的字符串 data = serializers.serialize("json",goods_list) #轉換成字典 data = json.loads(data) return JsonResponse(data,safe=False)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。