2016-09-25 96 views
-2

你如何在Flask中的藍圖之間共享代碼? 你使用什麼結構?藍圖之間共享代碼?

您是否創建單獨的課程?如果是,你如何傳遞應用程序或數據庫實例。

最佳做法是什麼?

回答

1

要從任何模塊訪問應用程序實例,Flask提供全局對象current_app,該對象維護current context中的一個應用程序實例的引用。如果你想讓你的應用程序的各種實例與不同的配置一起運行,這很有用。要使用它:

from flask import current_app 

從燒瓶文檔

應用程序上下文中創建並在必要時摧毀。它 永遠不會在線程之間移動,它將不會在 請求之間共享。因此,它是完美的地方,用於存儲數據庫連接 信息和其他東西。

Flask的文檔很不錯。所以看看。

+0

我會盡力......但我想更多的是分享代碼,而不是狀態。可能傳遞「db」或其他東西作爲調用的一部分(可能)。 – user1019129

1

我認爲這取決於你的代碼。如果這是某種輔助功能或類別,您可以將它放到您的app附近的包裝中。如果共享代碼取決於上下文,則可能需要查看項目結構。正如前面答案中的miso所指出的那樣:

Flask的文檔很不錯。所以看看。

特別是在Blueprints的部分。

但是,如果您確定項目結構良好,並且您仍然擁有大量共享代碼,那麼創建獨立庫或Flask-extension可能會非常有用。

無論如何,這一切都取決於你的代碼。