我已經將幾個我的sqlalchemy模型提取到單獨的可安裝軟件包(../lib/site-packages)中,以便跨越多個應用程序使用。從任何應用程序需要訪問這些模型在應用程序環境之外獲取配置變量
from models_package import MyModel
:所以我只需要。
到目前爲止,一切正常,但我找不到一種令人滿意的方式來獲取由某些模型使用的多個應用程序相關配置變量,這些變量可能因應用程序而異。因此,一些模型需要注意一些變量,而以前我使用他們的應用程序。
無論
current_app.config['XYZ']
或
config = LocalProxy(lambda: current_app.config['XYZ'])
工作過(outside of application context
錯誤),使我現在被卡住了。也許這是代表我的糟糕編程和/或設計,那麼如何澄清這一點?必須有某種方式,但我還沒有向自己推理。
SOLUTION:
避免對模塊加載(如含有一個API密鑰的常數)將發生的設定項目,上述兩種應該的工作,並且他們做。任何不在應用中使用模型的環境中使用這些東西當然是錯誤的,返回你需要的值的方法應該是好的。
你嘗試只導入應用程序對象(不是'current_app'代理)從你的'models_package'? – thkang
models_package是單獨的,並且沒有應用程序對象,從那裏的模型被導入到應用程序中。 – blueblank
有時循環進口解決了一個問題。 – thkang