1:返回操作成功的json数据
def response_success(message, data=None, data_list=[]): return HttpResponse(json.dumps({ 'code': 2000,#code由前后端配合指定 'message': message,#提示信息 'data': data,#返回单个对象 'dataList': data_list#返回对象数组 }), 'application/json')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2:返回操作失败的json数据
def response_failure(message, data=None, data_list=[]): return HttpResponse(json.dumps({ 'code': 4000, 'message': message, 'data': data, 'dataList': data_list }), 'application/json')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3:拦截非get请求
def get(func): def in_fun(request): if request.method == 'GET': return func(request) else: return response_failure('not get request') return in_fun
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
4:拦截非post请求
def post(func): def in_fun(request): if request.method == 'POST': return func(request) else: return response_failure('not post request') return in_fun
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
5:参数检查
def params(*args):#接收传入的字段 def check_params(func): def in_fun(request): p = [] for val in args:#遍历客户端请求是否包含字段 param = request.POST.get(val, 100) if param == 100:#若不包含则返回错误 return response_failure('need param %s' % val) else: p.append(param)#若包含则传入数组返回给被装饰的函数 return func(request, p) return in_fun return check_params
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
6:md5加密
def md5(s): m = hashlib.md5(s.encode('utf8')) return m.hexdigest()
- 1
- 2
- 3
7:保存文件
def save_file(file, save_path='photo'): destination = open(os.path.join(save_path, file.name), 'wb+') for chunk in destination: destination.write(chunk) destination.close()
- 1
- 2
- 3
- 4
- 5
这里传入的file是request.FILES对象,save_path是图片保存路径
@get和@post使用
1:在views模板下编写测试函数(记得在urls.py文件中进行相应配置)
2:将刚刚封装的函数所在模板引入views.py 3:使用@get进行拦截@getdef test(request): return response_success('test')#返回json
- 1
- 2
- 3
4:使用postman进行测试
post请求get请求
@post的用法如上@params,response_success,response_failure使用
@post@params('account', 'password')def login(request, args): user = BUser.objects.filter(account=args[0], password=md5(args[1])) if len(user) == 0: return response_failure('account or password error') u = model_to_dict(user[0]) u['password'] = '' request.session[config.LOGIN] = config.TAG_LOGIN return response_success('login success', u)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
1:@params中传入你所需的字段
2:args是一个list,list里面的数据按字段顺序排列 3:如上面的例子args[0]为account字段的值args[1]是password字段的值 4:从数据库查询出来的结果要用model_to_dict方法才能返回json格式字符串