亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解django的serializer序列化model幾種方法

 更新時間:2018年10月16日 09:11:15   作者:讓我在雪地上撒點野  
序列化是將對象狀態(tài)轉換為可保持或傳輸?shù)母袷降倪^程。這篇文章主要介紹了詳解django的serializer序列化model幾種方法。具有一定的參考價值,感興趣的小伙伴們可以參考一下

序列化是將對象狀態(tài)轉換為可保持或傳輸?shù)母袷降倪^程。與序列化相對的是反序列化,它將流轉換為對象。這兩個過程結合起來,可以輕松地存儲和傳輸數(shù)據(jù)

方法一:通過繼承View類,重寫get方法,獲取商品的前是前十條數(shù)據(jù),通過serialize序列化數(shù)據(jù),返回數(shù)據(jù)響應。

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實現(xiàn)商品列表頁
   :param request:
   :return:
   """
   #返回前所有商品的前10條數(shù)據(jù)
   goods_list = Goods.objects.all()[:10]
   #直接轉換成json類型的字符串
   data = serializers.serialize("json",goods_list)
   #注意要加上:"application/json",否則在瀏覽器顯示不正常
   return HttpResponse(data,"application/json")

方法二:通過繼承View類,重寫get方法,獲取指定獲取某些字段商品的前十條數(shù)據(jù),通過serialize序列化數(shù)據(jù),返回數(shù)據(jù)響應。

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條數(shù)據(jù)
     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方法,獲取商品的前是前十條數(shù)據(jù),通過serialize序列化數(shù)據(jù),返回數(shù)據(jù)響應,工作中我們常用第三種方法返回JSON數(shù)據(jù)。

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實現(xiàn)商品列表頁
   :param request:
   :return:
   """
   #返回前所有商品的前10條數(shù)據(jù)
   goods_list = Goods.objects.all()[:10] 
   #序列化,把內(nèi)存中的python對象,轉換成網(wǎng)絡中能夠傳輸?shù)膶ο?
   #直接轉換成json類型的字符串
   data = serializers.serialize("json",goods_list)
   #轉換成字典
   data = json.loads(data)
   return JsonResponse(data,safe=False)

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論