目前流行的前后端分离开发模式中,前端工程师需要根据后端开发人员给出的API文档发起不同的请求得到数据,API文档规定了一些请求的模板以及响应的数据格式和代码。
通常,前后端约定一些代码以代表一定含义的响应。
在这里,分享一个作者在开发过程中经常使用的一些技巧。
1新建utils文件夹
2新建json_status.py 文件
#导入模块
from django.http import JsonResponse
django 提供了一个jsonResponse方法,可以返回一个标准的json响应。
3创建一个 Code 的类
class Code:ok = 2params_error = 1un_auth_error = 403server_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响应。前端根据不同的响应代码,进行操作。
欢迎关注我的专栏:生动讲解编程知识
更多内容:kevinguocn@foxmail.com
我的网站:http://www.kevinguo.cn
QQ:876798594