5

デバッグモードによってトリガーされる自動リロードではなく、アプリの初回実行時にコードを実行したいフラスコアプリがあります。これを行うために、いつリロードがトリガーされたかを検出する方法はありますか?

例を挙げると、次のように、崇高なテキストからアプリを実行するたびに Web ブラウザーを開きたいと思うかもしれませんが、その後ファイルを編集するときはそうではありません。

import webbrowser
if __name__ == '__main__':
    webbrowser.open('http://localhost:5000')
    app.run(host='localhost', port=5000, debug=True)
4

3 に答える 3

2

環境変数を設定できます。

import os
if 'WERKZEUG_LOADED' in os.environ:
    print 'Reloading...'
else:
    print 'Starting...'
    os.environ['WERKZEUG_LOADED']='TRUE'

ただし、リロードしても生き残る参照を永続化する方法はまだわかりません。

于 2014-10-04T22:27:12.443 に答える
1

サーバーを起動する前に、Flask-Scriptを使用してプロセスを開始するのはどうですか? このようなもの (ドキュメントから引用し、わずかに編集):

# run_devserver.py

import webbrowser
from flask.ext.script import Manager

from myapp import app

manager = Manager(app)

if __name__ == "__main__":
    webbrowser.open('http://localhost:5000')
    manager.run(host='localhost', port=5000, debug=True)
于 2013-09-20T00:49:24.460 に答える