中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

山東有哪些網(wǎng)絡(luò)公司優(yōu)化大師客服

山東有哪些網(wǎng)絡(luò)公司,優(yōu)化大師客服,局域網(wǎng)小網(wǎng)站網(wǎng)站建設(shè)軟件,期末作業(yè)網(wǎng)頁設(shè)計目錄 遇到問題 Django返回json結(jié)構(gòu)報文 不可行方式python json 可行方式JsonResponseQuerySet.values()。 python的兩個web框架,flask和django,兩者都具有view 模板的章節(jié),但是當前開發(fā)一個應(yīng)用,大部分采用前后端分離的合作方式。…

目錄

遇到問題

Django返回json結(jié)構(gòu)報文

不可行方式python json

可行方式JsonResponse+QuerySet.values()。


python的兩個web框架,flask和django,兩者都具有view 模板的章節(jié),但是當前開發(fā)一個應(yīng)用,大部分采用前后端分離的合作方式。因此必然面對的一個事情就是接口返回json格式的數(shù)據(jù)報文。本文就是針對這個事情進行了闡述,遵從了從問題產(chǎn)生到方案選擇的過程。

遇到問題

如下為使用Django的序列化器得到的json格式數(shù)據(jù),可以很明顯的發(fā)現(xiàn),這個格式和理想的fieldName:fieldData形式存在較大的差異。

serializers.serialize('json', instance)[{"model": "polls.question",
	"pk": 1,
	"fields": {"question_text": "xxxxxxxxxxx?","pub_date": "2023-07-25T07:05:08Z"}
}, {"model": "polls.question",
	"pk": 2,
	"fields": {"question_text": "啊啊啊啊啊","pub_date": "2023-07-27T02:00:59Z"}
}]

Django返回json結(jié)構(gòu)報文

通過這個問題,引出了本文要做的事情,在Django接口中,如何將數(shù)據(jù)模型實例轉(zhuǎn)換為常規(guī)的json格式并返回。

不可行方式python json

dumps會出現(xiàn)序列化異常,Object of type xxxxx is not JSON serializable。

可行方式JsonResponse+QuerySet.values()。

values()返回由一系列字典實例構(gòu)成的QuerySet。下面對比下使用和不使用values()得到的QuerySet有什么區(qū)別。

# 由模型對象構(gòu)成.
>>> Blog.objects.filter(name__startswith="Beatles")
<QuerySet [<Blog: Beatles Blog>]># 由字典構(gòu)成.
>>> Blog.objects.filter(name__startswith="Beatles").values()
<QuerySet [{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}]>

JsonResponse作為HttpResponse的子類,對返回數(shù)據(jù)進行json編碼。

接下來是簡單代碼樣例

定義一個APIResult class:

class APIResult(dict):
    def __init__(self, data):
        self['code'] = 200
        if isinstance(data, dict):print("data is dict")
            self['data'] = data
        elif isinstance(data, list):print("data is list")
            self['data'] = dataelse:print("data is not dict or list")
            self['data'] = list(data)

返回模型實例列表:

def question_list(request):
    query_set = Question.objects.all()[:5]
    result = APIResult(data=query_set.values())
    return JsonResponse(result, safe=False){"code": 200,
	"data": [{"id": 1,"question_text": "xxxxxxxxxxx?","pub_date": "2023-07-25T07:05:08Z"}, {"id": 2,"question_text": "\u554a\u554a\u554a\u554a\u554a","pub_date": "2023-07-27T02:00:59Z"}]
}

返回具體實例:

def question_detail(request, question_id):try:
        query_set = Question.objects.filter(pk=question_id)
    except Question.DoesNotExist:
        raise Http404("No question")    result = APIResult(data=query_set.values()[0])
    return JsonResponse(result){"code": 200,
	"data": {"id": 1,"question_text": "xxxxxxxxxxx?","pub_date": "2023-07-25T07:05:08Z"}
}

如果你對返回哪些字段有要求,可以向values()傳入具體字段名,如values('id')。

{"code": 200, "data": [{"id": 1}, {"id": 2}]}

http://www.risenshineclean.com/news/52319.html

相關(guān)文章:

  • 開封網(wǎng)站建設(shè)百度商店應(yīng)用市場
  • 青海網(wǎng)站建設(shè)企業(yè)四川seo選哪家
  • 機械做網(wǎng)站好處百度推廣管家登錄
  • 企業(yè)網(wǎng)站需要注意什么搜索引擎營銷是什么意思
  • 網(wǎng)站作用愛站網(wǎng)愛情電影網(wǎng)
  • 合肥網(wǎng)頁制作設(shè)計重慶網(wǎng)站排名優(yōu)化教程
  • 徐州建設(shè)網(wǎng)站公司建網(wǎng)站費用
  • 做公司標志用哪個網(wǎng)站網(wǎng)絡(luò)優(yōu)化需要哪些知識
  • 有口碑的企業(yè)網(wǎng)站建設(shè)專業(yè)的制作網(wǎng)站開發(fā)公司
  • 網(wǎng)站的建設(shè)與維護工資平臺優(yōu)化是什么意思
  • 東莞網(wǎng)站設(shè)計公司軟文標題大全
  • 德爾普網(wǎng)絡(luò)做網(wǎng)站怎么樣淘寶搜索關(guān)鍵詞技巧
  • 電腦首頁wordpress公眾號排名優(yōu)化
  • 手機系統(tǒng)網(wǎng)站seo自動優(yōu)化工具
  • 動態(tài)h5網(wǎng)站開發(fā)百度指數(shù)分析數(shù)據(jù)
  • 凡科快圖軟件下載南昌seo計費管理
  • 網(wǎng)站聯(lián)盟怎么做青島關(guān)鍵詞排名哪家好
  • 泉州seo-泉州網(wǎng)站建設(shè)公司電商平臺的營銷方式
  • 做銷售在那個網(wǎng)站找新鄭網(wǎng)絡(luò)推廣公司
  • 金融網(wǎng)站建設(shè)成功案例品牌關(guān)鍵詞優(yōu)化哪家便宜
  • 用ps做零食網(wǎng)站模板seo培訓資料
  • 網(wǎng)站建設(shè)公司名字seo網(wǎng)站優(yōu)化師
  • 做網(wǎng)站什么字體網(wǎng)絡(luò)營銷課程感悟
  • 怎么查看網(wǎng)站的安全性百度推廣優(yōu)化怎么做
  • 網(wǎng)站建設(shè)制作公司地址發(fā)軟文是什么意思
  • 網(wǎng)站開發(fā)目的騰訊企點賬戶中心
  • 珠海高端網(wǎng)站制作公司怎么做網(wǎng)頁設(shè)計的頁面
  • 溫州網(wǎng)站推廣站建設(shè)河北seo診斷培訓
  • 網(wǎng)站是由哪些組成電商平臺推廣怎么做
  • 騰訊風鈴做的網(wǎng)站有期限嗎優(yōu)化seo系統(tǒng)