django之定义统一返回数据格式与GET/POST装饰器

1. 为了返回给网页前端的格式统一,定义一个通用的插件类,返回统一格式数据

# enconding:utf-8
"""
定义一个插件类,
"""
from django.http import JsonResponse,HttpResponse

# 自定义状态码
class HttpCode(object):
    # 正常登陆
    ok = 200
    # 参数错误
    paramserror = 400
    # 权限错误
    unauth = 401
    # 方法错误
    methoderror = 405
    # 服务器内部错误
    servererror = 500


# 定义统一的 json 字符串返回格式
def result(code=HttpCode.ok, message="", data=None, kwargs=None):
    json_dict = {"code": code, "message": message, "data": data}
    # isinstance(object对象, 类型):判断是否数据xx类型
    if kwargs and isinstance(kwargs, dict) and kwargs.keys():
        json_dict.update(kwargs)

    return JsonResponse(json_dict)


def ok():
    return result()

# 参数错误
def params_error(message="", data=None):
    return result(code=HttpCode.paramserror, message=message, data=data)

# 权限错误
def unauth(message="", data=None):
    return result(code=HttpCode.unauth, message=message, data=data)


# 方法错误
def method_error(message="", data=None):
    return result(code=HttpCode.methoderror, message=message, data=data)


# 服务器内部错误
def server_error(message="", data=None):
    return result(code=HttpCode.servererror, message=message, data=data)

 

2. GET/POST装饰器

  作用:限制视图函数的请求类型

#导入模块:

from django.views.decorators.http import require_POST, require_GET
  
#例:
@require_POST #只允许POST请求
def index(request):
  pass
    
@require_GET #只允许GET请求
def cms(request):
  pass
 

无所成,但至少努力过

猜你喜欢

转载自www.cnblogs.com/jingxuan-li/p/9721369.html