2013-03-16 72 views
3

這裏是我的情況:Before_request多藍圖

比方說,我有2個藍圖before_request方法:

mod = Blueprint('posts', __name__, url_prefix='/posts') 

@mod.before_request 
def before_request(): 
    #some code that uses SQLAlchemy here 
    pass 

現在我不想重複在第二藍圖這種方法的邏輯。

我該怎麼做? PS:我是新來的Python,所以我可能會失去一些明顯的東西。 謝謝。

+5

你可以總是在別處定義這些功能,'import'他們做'mod.before_request(imported_function)' – Blender 2013-03-16 06:35:10

+0

我知道我失蹤的顯而易見。謝謝:) – sirrocco 2013-03-16 06:40:58

+0

該死..現在我無法訪問燒瓶中的g對象 – sirrocco 2013-03-16 06:50:18

回答

4

使用blueprint.before_app_request它適用於視圖應用範圍,不僅景色在同一藍圖

+0

謝謝,這似乎是我想要的,但仍然...如果我有2藍圖需要處理的東西,而另外2藍圖需要處理別的?(也許一個需要管理員權限,另一個需要用戶權限) – sirrocco 2013-03-16 06:32:01

+0

@sirrocco你是什麼意思?你應該在其他地方定義用戶特權級別,並且按該用戶級別執行'before_request's – thkang 2013-03-16 06:36:18

+0

我正在尋找Blender在上面的註釋中給出的答案:)。謝謝。 – sirrocco 2013-03-16 06:41:38