裝飾視圖于个。
用于API類在處理實(shí)際HTTP方法之前做相關(guān)數(shù)據(jù)處理氛魁,用戶驗(yàn)證,日志記錄等裝飾器操作
使用方法:
from .comm.wrappers import api, Resource
from functools import wraps
#定義裝飾器方法
def auth_user(func):
@wraps(func)
def wrapper(*args, **wargs):
# func_code 用來處理數(shù)據(jù)或進(jìn)行其他操作的具體代碼
return func(*args, **wargs) #帶參數(shù)返回
return wrapper
class UserInfoSetting(Resource):
method_decorators = [auth_user] #將裝飾器方法添加在操作類中
def get(self, *args, **wargs):
pass
在API類中添加了
method_decorators = [func_name]
這一句以后厅篓,函數(shù)執(zhí)行到API下的具體HTTP方法之前會(huì)先執(zhí)行裝飾器操作秀存, 并且執(zhí)行裝飾器操作時(shí)可以調(diào)用所有傳給API的參數(shù),并對(duì)其進(jìn)行操作
實(shí)際使用:
1羽氮、公司腕表信息修改 API中提供多個(gè)不同的類對(duì)不同數(shù)據(jù)進(jìn)行修改或链,每次修改前都需要驗(yàn)證get請(qǐng)求中的user_id以及watch_id是否存在數(shù)據(jù)庫(kù)中,如果不存在則返回指定的錯(cuò)誤頁(yè)面
鏈接http://flask-restful.readthedocs.io/en/latest/extending.html