序
在web項目中,通常前端需要我們返回一些狀態碼,表示請求的響應。而在實際的項目中,一般使用英文替代狀態碼,有兩個好處:
- 方便其他開發人員識別;
- 統一管理,便於後期維護。
常用狀態碼
# coding:utf-8
class RET:
OK = "0"
DBERR = "4001"
NODATA = "4002"
DATAEXIST = "4003"
DATAERR = "4004"
SESSIONERR = "4101"
LOGINERR = "4102"
PARAMERR = "4103"
USERERR = "4104"
ROLEERR = "4105"
PWDERR = "4106"
CPWDERR = "4107"
MOBILEERR = "4108"
REQERR = "4201"
IPERR = "4202"
THIRDERR = "4301"
IOERR = "4302"
SERVERERR = "4500"
UNKOWNERR = "4501"
NECESSARYPARAMERR = "4502"
SMSCODERR = "4503"
ALLOWERR = "4504"
error_map = {
RET.OK : u"成功",
RET.DBERR : u"數據庫查詢錯誤",
RET.NODATA : u"無數據",
RET.DATAEXIST : u"數據已存在",
RET.DATAERR : u"數據錯誤",
RET.SESSIONERR : u"用戶未登錄",
RET.LOGINERR : u"用戶登錄失敗",
RET.PARAMERR : u"參數錯誤",
RET.USERERR : u"用戶不存在或未激活",
RET.ROLEERR : u"用戶身份錯誤",
RET.PWDERR : u"密碼錯誤",
RET.CPWDERR : u"密碼不一致",
RET.MOBILEERR : u"手機號錯誤",
RET.REQERR : u"非法請求或請求次數受限",
RET.IPERR : u"IP受限",
RET.THIRDERR : u"第三方系統錯誤",
RET.IOERR : u"文件讀寫錯誤",
RET.SERVERERR : u"內部錯誤",
RET.UNKOWNERR : u"未知錯誤",
RET.NECESSARYPARAMERR : u"缺少必傳參數",
RET.SMSCODERR : u"短信驗證碼有誤",
RET.ALLOWERR : u"未勾選協議",
}
# coding:utf-8
class RETCODE:
OK = "0"
IMAGECODEERR = "4001"
THROTTLINGERR = "4002"
NECESSARYPARAMERR = "4003"
USERERR = "4004"
PWDERR = "4005"
CPWDERR = "4006"
MOBILEERR = "4007"
SMSCODERR = "4008"
ALLOWERR = "4009"
SESSIONERR = "4101"
DBERR = "5000"
EMAILERR = "5001"
TELERR = "5002"
NODATAERR = "5003"
NEWPWDERR = "5004"
REQERR = "4201"
IPERR = "4202"
THIRDERR = "4301"
IOERR = "4302"
SERVERERR = "4500"
UNKOWNERR = "4501"
err_msg = {
RETCODE.OK : u"成功",
RETCODE.IMAGECODEERR : u"圖形驗證碼錯誤",
RETCODE.THROTTLINGERR : u"訪問過於頻繁",
RETCODE.NECESSARYPARAMERR : u"缺少必傳參數",
RETCODE.USERERR : u"用戶名錯誤",
RETCODE.PWDERR : u"密碼錯誤",
RETCODE.CPWDERR : u"密碼不一致",
RETCODE.MOBILEERR : u"手機號錯誤",
RETCODE.SMSCODERR : u"短信驗證碼有誤",
RETCODE.ALLOWERR : u"未勾選協議",
RETCODE.SESSIONERR : u"用戶未登錄",
RETCODE.DBERR : u"數據錯誤",
RETCODE.EMAILERR : u"郵箱錯誤",
RETCODE.TELERR : u"固定電話錯誤",
RETCODE.NODATAERR : u"無數據",
RETCODE.NEWPWDERR : u"新密碼數據",
}
項目中使用
在項目中,狀態碼會被封裝成一個文件,通過導入方式調用狀態碼。
from django.views import View
from django import http
import json
# 調用狀態碼
from meiduo_mall.utils.response_code import RETCODE
class OrderCommitView(View):
def post(self, request):
# 響應請求
return http.JsonResponse({"code": RETCODE.OK, "errmsg": "請求成功"})