簡體   English   中英

如何從Flask中的不同藍圖調用方法?

[英]How to call a method from a different blueprint in Flask?

我有一個帶有多個藍圖模塊的應用程序。

我想從一個不同的藍圖路線中調用通常會返回視圖或渲染模板的方法(路徑)。

怎么能正確完成?

謝謝。

視圖只是功能; 導入該函數並直接調用它,傳入它可能已定義的任何路由參數。

藍圖的作用是更容易在一個公共前綴下注冊一組路由,對其模板和靜態資源進行分組,並處理該組的請求相關事件(請求已啟動,請求已完成等)。 但是你如何調用一個視圖並沒有改變。

例如,如果foo藍圖中有路由,則在foo.py模塊中:

@foo.route('/bar/<id>')
def bar(id):
    return something_done_with_id(id)

您可以導入該功能並在其他地方使用它:

import foo

@baz.route('/spam/ham/eggs'):
def baz():
    return foo.bar(42)

這里bar從URL中獲取一個名為id的參數,因此在調用view函數時,我們需要傳入該參數的值。

請注意,任何藍圖before_requestafter_requestcontext_processor函數都不會執行(在路由時發生),Blueprint特定的錯誤處理程序也不會生效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM