Flask 裝飾視圖

2021-08-10 17:54 更新

既然視圖類自己不是加入到路由系統(tǒng)的視圖函數(shù),那么裝飾視圖類并沒有多大意義。 相反的,你可以手動裝飾 as_view() 的返回值:

def user_required(f):
    """Checks whether user is logged in or raises error 401."""
    def decorator(*args, **kwargs):
        if not g.user:
            abort(401)
        return f(*args, **kwargs)
    return decorator

view = user_required(UserAPI.as_view('users'))
app.add_url_rule('/users/', view_func=view)

從 Flask 0.8 開始,你也有一種在類聲明中設定一個裝飾器列表的方法:

class UserAPI(MethodView):
    decorators = [user_required]

因為從調用者的視角來看 self 是不明確的,所以你不能在單獨的視圖方法上使用 常規(guī)的視圖裝飾器,請記住這些。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號