2017-11-01 7 views
0

私は卵子から青写真をロードするモジュラーフラスコアプリケーションを作成していますが、それらの青写真はそれらのパッケージからテンプレートをレンダリングする必要があります。卵パッケージからのフラスコ負荷テンプレート

これは私のプロジェクトはどのように見えるかです:今

some folders/ 
templates/ #the base folders 
static/ 
blueprints/ 
    |- blueprint1.egg 
    | |- templates/ #inside the .egg 
    | |- some other folders/ 
    | |- main.py 
    |- blueprint2.egg 
    |- templates/ 
    |- some other folders/ 
    |- main.py 
my_flask_main.py 

私はインポートし、それらの.eggからcorrecly青写真を登録するが、どのように私はそれらをオンザフライで抽出.eggから、それらのテンプレートを読み込むことができ、または.eggから直接それらを読み込む方が良いでしょうか?

(青写真がパッケージ化されていないときのdevのモードでOBVが、それは動作しますが、私は青写真がパッケージ化されたときにも、それらをロードする方法が必要です)事前に

感謝。

答えて

0

は、いくつかの研究とテストの後、数日後、私は最終的にそれを行うための方法を発見した:

bp_dummy = Blueprint('dummy', __name__, template_folder='templates') 

bp_dummy.jinja_loader = jinja2.ChoiceLoader([ 
    bp_dummy.jinja_loader, 
    jinja2.PackageLoader(__name__) # in the same folder will search the 'templates' folder 
]) 

まず、すべての青写真インスタンスで、テンプレートフォルダのパスを定義し、デフォルトJinja2のテンプレートフォルダをオーバーライドする必要があります(デフォルトではFileSystemLoaderでなければなりません)、モジュールがパッケージ化されると、デフォルトのローダーが失敗し、PackageLoaderが機能します。