您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎樣進(jìn)行Django中方便快捷的json響應(yīng)分析,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
目前流行的前后端分離開發(fā)模式中,前端工程師需要根據(jù)后端開發(fā)人員給出的API文檔發(fā)起不同的請求得到數(shù)據(jù),API文檔規(guī)定了一些請求的模板以及響應(yīng)的數(shù)據(jù)格式和代碼。
通常,前后端約定一些代碼以代表一定含義的響應(yīng)。
在這里,分享一個作者在開發(fā)過程中經(jīng)常使用的一些技巧。
1新建utils文件夾
2新建json_status.py 文件
#導(dǎo)入模塊 from django.http import JsonResponse
django 提供了一個jsonResponse方法,可以返回一個標(biāo)準(zhǔn)的json響應(yīng)。
3創(chuàng)建一個 Code 的類
class Code: ok = 2 params_error = 1 un_auth_error = 403 server_error = 500
返回不同狀態(tài)的響應(yīng)代碼
4創(chuàng)建一個標(biāo)準(zhǔn)的json響應(yīng)函數(shù)
def result(code = Code.ok,message = '',data = None,**kwargs): json_dict = {"code":code, 'msg':message,"data":data} if kwargs and isinstance(kwargs,dict): json_dict.update(kwargs) return JsonResponse(json_dict)
在這里,通過定義result函數(shù),封裝一些常用的響應(yīng)字段,例如響應(yīng)的代碼,信息,數(shù)據(jù),可供前端使用。
kwargs:熟悉Python的朋友一定不會陌生,這是Python中經(jīng)典的使用,可以向函數(shù)中傳入不定長的參數(shù)。
5創(chuàng)建更豐富的json響應(yīng)函數(shù)
ef params_error(message='',data=None): ''' 參數(shù)錯誤 :param message:傳給前端的信息 :param data: 傳給前端的數(shù)據(jù),字典類型 :return: Json響應(yīng) ''' return result(code=Code.params_error,message=message,data=data) def un_auth_error(code=Code.un_auth_error,message='',data=None): ''' 權(quán)限錯誤 :param code: :param message: :param data: :return: ''' return result(code,message=message,data=data) def server_error(code = Code.server_error,message='',data=None): ''' 服務(wù)器錯誤 :param code: :param message: :param data: :return: ''' return result(code,message=message,data=data)
上面我們創(chuàng)建了一系列的json響應(yīng)函數(shù),下面我們演示如何在視圖函數(shù)中使用。
6在視圖中響應(yīng)使用響應(yīng)函數(shù)
#首先導(dǎo)入 from utils import json_status #創(chuàng)建一個視圖函數(shù) def index(request): id = int(request.GET.get("id")) if id ===1: return json_status.result(message='成功') else: return json_status.params_error(message='參數(shù)錯誤')
通過GET方法,獲取到的id的值,判斷id。
如果id=1 則返回成功的響應(yīng)
如果id為其他值,則返回參數(shù)錯誤的響應(yīng)
在前端中(以ajax為例)
$.ajax({ type: get, url: url, data: {"id":1}, success: function (result) { if (result.code ==2) { alert(result.message); }); } else{ alert(result.code); alert(result.message); } return; } });
通過上述方法,可以返回一個標(biāo)準(zhǔn)的json響應(yīng)。前端根據(jù)不同的響應(yīng)代碼,進(jìn)行操作。
關(guān)于怎樣進(jìn)行Django中方便快捷的json響應(yīng)分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。