欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^(guò)程。與序列化相對(duì)的是反序列化,它將流轉(zhuǎn)換為對(duì)象。這兩個(gè)過(guò)程結(jié)合起來(lái),可以輕松地存儲(chǔ)和傳輸數(shù)據(jù)

方法一:通過(guò)繼承View類(lèi),重寫(xiě)get方法,獲取商品的前是前十條數(shù)據(jù),通過(guò)serialize序列化數(shù)據(jù),返回?cái)?shù)據(jù)響應(yīng)。

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

方法二:通過(guò)繼承View類(lèi),重寫(xiě)get方法,獲取指定獲取某些字段商品的前十條數(shù)據(jù),通過(guò)serialize序列化數(shù)據(jù),返回?cái)?shù)據(jù)響應(yīng)。

from django.views.generic import View
from goods.models import Goods
from django.http import HttpResponse
import json
class GoodsListView(View):
  #重寫(xiě)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字符串 設(shè)置為utf-8編碼
    return HttpResponse(response_data,'application/json')

方法三:使用Jsonresponse,通過(guò)繼承View類(lèi),重寫(xiě)get方法,獲取商品的前是前十條數(shù)據(jù),通過(guò)serialize序列化數(shù)據(jù),返回?cái)?shù)據(jù)響應(yīng),工作中我們常用第三種方法返回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):
   """
   通過(guò)django的view實(shí)現(xiàn)商品列表頁(yè)
   :param request:
   :return:
   """
   #返回前所有商品的前10條數(shù)據(jù)
   goods_list = Goods.objects.all()[:10] 
   #序列化,把內(nèi)存中的python對(duì)象,轉(zhuǎn)換成網(wǎng)絡(luò)中能夠傳輸?shù)膶?duì)象
   #直接轉(zhuǎn)換成json類(lèi)型的字符串
   data = serializers.serialize("json",goods_list)
   #轉(zhuǎn)換成字典
   data = json.loads(data)
   return JsonResponse(data,safe=False)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論