FlaskでBlueprint間でコードをどのように共有しますか? どのような構造を使用していますか?青写真の間でコードを共有しますか?
別のクラスを作成していますか?はいの場合は、どのようにアプリケーションまたはdbインスタンスを渡しますか。
ベストプラクティスは何ですか?
FlaskでBlueprint間でコードをどのように共有しますか? どのような構造を使用していますか?青写真の間でコードを共有しますか?
別のクラスを作成していますか?はいの場合は、どのようにアプリケーションまたはdbインスタンスを渡しますか。
ベストプラクティスは何ですか?
任意のモジュールからアプリケーションインスタンスにアクセスするために、Flaskはグローバルオブジェクトcurrent_app
を提供します。current_app
はcurrent contextに1つのアプリケーションインスタンスの参照を保持します。これは、アプリケーションのさまざまなインスタンスをさまざまな構成で実行したい場合に便利です。これを使用するには:フラスコのドキュメントから
from flask import current_app
をアプリケーションコンテキストが作成され、必要に応じて破棄されます。 はスレッド間で移動することはなく、 リクエストでは共有されません。このように、 の情報やその他のものを保存するのに最適な場所はです。
フラスケのドキュメントはかなり良いです。だから見てみましょう。
あなたのコードによって異なると思います。これが何らかの補助機能やクラスであれば、app
の近くのパッケージに入れることができます。共有コードがコンテキストに依存する場合は、おそらくプロジェクトの構造を確認する必要があります。前の答えの味噌に記載されているとおり:
フラスケのドキュメントはかなり良いです。だから見てみましょう。
特に、Blueprintsのセクションです。
しかし、あなたのプロジェクトの構造が良好で、まだ多くの共有コードがある場合は、スタンドアロンライブラリまたはFlask-extensionを作成すると便利かもしれません。
とにかく、あなたのコードによって異なります。
私はそれを試みます...しかし、私はコードではなく、状態を共有することをもっと考えていました。そしておそらくコールの一部として "db"やその他のものを渡しているかもしれません。 – user1019129