tornado許可權裝飾器demo

2021-08-31 21:28:23 字數 1391 閱讀 2766

# -*- coding: utf-8 -*-

import tornado.ioloop

import tornado.web

# 利用裝飾器, 實現主頁和登入頁任何人可以訪問,系統後台只有超級管理員,運維可以訪問

def _access_check(_object):

"""僅為demo,結合業務邏輯進行驗證"""

"""中介軟體基類"""

def prepare(self):

if hasattr(self, "__check_type__"):

self.access_check()

class indexhandler(basehandler):

def get(self):

self.write("來到首頁")

@need_check(check=true, check_type=["superuser", "operations"])

class adminhandler(basehandler):

def get(self):

self.write("來到系統後台")

@need_check(check=false) # 強迫症開發者

class loginhandler(basehandler):

def get(self):

self.write("來到登入頁面")

(r"/", indexhandler),

(r"/admin", adminhandler),

(r"/login", loginhandler),

])if __name__ == "__main__":

tornado.ioloop.ioloop.current().start()

訪問:

返回:來到系統後台

訪問:

返回: 403: forbidden

tornado利用裝飾器記錄每個http請求

python利用裝飾器記錄每個http請求 設定裝飾器 from functools import wraps from datetime import datetime function 用於記錄每個http請求 然後在每個請求函式上面加上這個裝飾器 這個時候我們那就可以看到裝飾器中的print值...

裝飾器之類裝飾器

外部的方法至今都玩過了,現在來思索一下的方法這麼裝飾 類方法修飾器 類的方法唯一的特殊點在於,self內部是可以呼叫的,但是在外部卻是隱藏的,那這個怎麼搞 為求穩妥,先定參修飾乙個 def godme fun def godme self,message print before fun self,...

python裝飾器 裝飾器

由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。def now print 2015 3 25 f now f 2015 3 25 函式物件有乙個 name 屬性,可以拿到函式的名字 now.name now f.name now 現在,假設我們要增強now 函式的...