私はFlagsアプリケーションにMongoのデータベースエントリを初期化し、cronジョブをスケジュール設定するセットアップコードを用意しています。サーバーを起動してもテストを実行していないときに、これを一度実行するにはどうすればよいですか?フラスコセットアップコードは一度だけ実行されますが、テスト中は実行されません
私のプロジェクトは、次のように構成されている:appオブジェクトとセットアップコードがmain.py
にあり、アプリのオブジェクトにアクセスするfrom crypto import main
を実行するために
app = Flask(__name__)
...
with app.app_context():
# do database setup
# do cron job setup
マイtest.py
ニーズのように見えるが
/crypto
__init__.py
main.py
/templates
/statis
/tests
tests.py
それをインポートする行為は、私が欲しくないセットアップコードも実行します。私は構造的にこれを解決することができない何かがありますか?
@Hi私はFrogattoよ、私はflask run
でローカルにサーバを起動するときしかし、そのコードが実行されません、セットアップコードの周りif __name__ == "__main__":
を追加してみました。
回答ありがとうございます!私はそれを試みたが、 'フラスコ実行'はそのセクションでコードを実行しない。 – Mike
@Mike問題を解決するには、(1) 'フラスコ実行' CLIを使用しないコードでサーバーを実行してください。 [例](https://github.com/openshift-quickstart/flask-example/blob/master/wsgi/myflaskapp.py)。 (2)common.pyを 'main.py'からインポートすることは避けてください。' main.py'からimportすることをお勧めします。 (3)CLIを使用してサーバーを初期化/設定してみてください。 [例](http://flask.pocoo.org/docs/0.12/tutorial/dbinit/)。 –