2016-09-25 8 views
-2

FlaskでBlueprint間でコードをどのように共有しますか? どのような構造を使用していますか?青写真の間でコードを共有しますか?

別のクラスを作成していますか?はいの場合は、どのようにアプリケーションまたはdbインスタンスを渡しますか。

ベストプラクティスは何ですか?

答えて

1

任意のモジュールからアプリケーションインスタンスにアクセスするために、Flaskはグローバルオブジェクトcurrent_appを提供します。current_appcurrent contextに1つのアプリケーションインスタンスの参照を保持します。これは、アプリケーションのさまざまなインスタンスをさまざまな構成で実行したい場合に便利です。これを使用するには:フラスコのドキュメントから

from flask import current_app 

をアプリケーションコンテキストが作成され、必要に応じて破棄されます。 はスレッド間で移動することはなく、 リクエストでは共有されません。このように、 の情報やその他のものを保存するのに最適な場所はです。

フラスケのドキュメントはかなり良いです。だから見てみましょう。

+0

私はそれを試みます...しかし、私はコードではなく、状態を共有することをもっと考えていました。そしておそらくコールの一部として "db"やその他のものを渡しているかもしれません。 – user1019129

1

あなたのコードによって異なると思います。これが何らかの補助機能やクラスであれば、appの近くのパッケージに入れることができます。共有コードがコンテキストに依存する場合は、おそらくプロジェクトの構造を確認する必要があります。前の答えの味噌に記載されているとおり:

フラスケのドキュメントはかなり良いです。だから見てみましょう。

特に、Blueprintsのセクションです。

しかし、あなたのプロジェクトの構造が良好で、まだ多くの共有コードがある場合は、スタンドアロンライブラリまたはFlask-extensionを作成すると便利かもしれません。

とにかく、あなたのコードによって異なります。

関連する問題