这篇文章给大家介绍怎样进行Django中方便快捷的json响应分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
目前流行的前后端分离开发模式中,前端工程师需要根据后端开发人员给出的API文档发起不同的请求得到数据,API文档规定了一些请求的模板以及响应的数据格式和代码。
通常,前后端约定一些代码以代表一定含义的响应。
在这里,分享一个作者在开发过程中经常使用的一些技巧。
1新建utils文件夹
2新建json_status.py 文件
#导入模块
from django.http import JsonResponse
django 提供了一个jsonResponse方法,可以返回一个标准的json响应。
3创建一个 Code 的类
class Code:
ok = 2
params_error = 1
un_auth_error = 403
server_error = 500
返回不同状态的响应代码
4创建一个标准的json响应函数
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函数,封装一些常用的响应字段,例如响应的代码,信息,数据,可供前端使用。
kwargs:熟悉Python的朋友一定不会陌生,这是Python中经典的使用,可以向函数中传入不定长的参数。
5创建更丰富的json响应函数
ef params_error(message='',data=None):
'''
参数错误
:param message:传给前端的信息
:param data: 传给前端的数据,字典类型
:return: Json响应
'''
return result(code=Code.params_error,message=message,data=data)
def un_auth_error(code=Code.un_auth_error,message='',data=None):
'''
权限错误
:param code:
:param message:
:param data:
:return:
'''
return result(code,message=message,data=data)
def server_error(code = Code.server_error,message='',data=None):
'''
服务器错误
:param code:
:param message:
:param data:
:return:
'''
return result(code,message=message,data=data)
上面我们创建了一系列的json响应函数,下面我们演示如何在视图函数中使用。
6在视图中响应使用响应函数
#首先导入
from utils import json_status
#创建一个视图函数
def index(request):
id = int(request.GET.get("id"))
if id ===1:
return json_status.result(message='成功')
else:
return json_status.params_error(message='参数错误')
通过GET方法,获取到的id的值,判断id。
如果id=1 则返回成功的响应
如果id为其他值,则返回参数错误的响应
在前端中(以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;
}
});
通过上述方法,可以返回一个标准的json响应。前端根据不同的响应代码,进行操作。
关于怎样进行Django中方便快捷的json响应分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/kevinguocn/blog/4908816