使用exception錯誤處理機制。繼承後,在view.py裡面使用raise捕獲異常,需要使用 [ try: exception 自定義的異常類 :]才能正常使用,不夠靈活,使用方法如下:
##### my_exception.py ###### 利用繼承自定義異常提示資訊
classmyexception(exception):
def__init__(self,code,error,data):
self.code=code
self.error=error
self.data=data
##### view.py #####查詢了很多資料,都需要在settiong.py新增如下配置:try:
if not 1<0:
raisemyexception(1001,'你的說法錯誤','1不小於0')
except myexceptionase:
pass
rest_framework=並編輯自定義的異常處理函式
# response.data['message'] =response.data['detail'] #增加message這個key
# response.data['message'] ='方法不對' #增加message這個key
return response通過本人實踐,其實並不用以上兩步,下面進入正題。
繼承rest_framework.exceptions 的 apiexception 自定義異常處理機制
##### exceptions.py #####"""自定義異常"""
from rest_framework.exceptions import apiexception
from rest_framework import status
class baseerror(apiexception):
"""自定義異常基礎類"""
self.detail=detail# 輸出的錯誤資訊,可以是字典型,也可以是字串型
self.status_code=status_code# 響應的狀態碼
class defaulterror(baseerror):
"""預設異常,自定義使用,返回狀態-1,響應狀態400"""
def__init__(self,message=none,code=-1):
detail= # 繼承baseerror,傳給self.detail
super(defaulterror,self).__init__(detail)
##### view.py #####from rest_framework.views import apiview
class register(apiview):# 注意這裡必須使用apiview,不能使用view,這裡作者踩了坑
@staticmethod
defpost(r):
username=r.post.get('username')
password=r.post.get('password')
db_user=usermodels.objects.filter(username=username,password=password).first()
if not db_user:
msg='使用者名稱或密碼錯誤'
raise defaulterror()# 這裡就可以直接捕獲並彈出異常
return db_user.id
python Django框架實現自定義表單提交
除了使用django內建表單,有時往往我們需要自定義表單。對於自定義表單post方式提交往往會帶來由csrf 跨站請求偽造 產生的錯誤 csrf verification failed.request aborted.本篇文章主要針對 表單提交 和 ajax提交 兩種方式來解決csrf帶來的錯誤 一...
自定義 如何自定義協議
何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...
自定義控制項 自定義鐘錶
private context mcontext 畫筆 private paint mpaint 控制項的寬 private int mwidth x方向的圓心座標 private int center 鐘錶的半徑 private int mradio 圓環的寬 private int stroke...