1

単体テスト モードで Flask アプリを実行すると問題が発生します。何らかの理由で、同じモジュールが 2 回インポートされます (開発サーバーとして実行する場合、フラスコ アプリでは問題ではないようです)。構造は次のようになります。

  -- app
    |
    --blueprint
       |-- __init__.py : import foo; from .bar import aaa
       |-- foo.py : # some sqlalchemy model setup, etc
       |
       |-- bar
       |    | -- __init__.py : from bar import bbb
            | -- bar.py : from app.foo import ccc

問題は、bar.py関数を使用しfoo.py:cccて sqlalchemy モデル定義を 2 回実行することです (メタデータに既にモデルが登録されているため、これは失敗します)。この競合をどのように回避できますか? 単体テストとしてではなくフラスコアプリケーションを実行すると、なぜこれが起こらないのかについても驚いています。

4

0 に答える 0