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
 
        

無所成,但至少努力過


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM