9

フラスコのドキュメントを読むと、通常、デバッグ フラグを置く場所が 2 つあります。

  • フラスコオブジェクトの作成後

    app = Flask(__name__)
    app.debug = True
    
  • または run メソッドによって

    app.run(host='0.0.0.0', debug = True)
    

私のプロジェクトには app/ init .py ファイルがあります:

    from flask import Flask
    app = Flask(__name__) 
    #app.debug = True       
    from app import views
    if app.debug == True:
       ...
       ...

そして run.py ファイル:

from app import app
import os
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port, debug = True)

2 番目のオプション (app.run による) で見られる問題は、run メソッドを実行するまで True 値が設定されないことです。そのため、私のinit .py ファイルには、デフォルト値の app.debug (False) が含まれます。最初のオプションでは、その問題はありません。

上記のとおりですか、それとも表示されていないものはありますか? アプリケーションに関係なく、デバッグ値を配置するのに最適な場所は何ですか?

4

1 に答える 1

17

ドキュメントには と書かBoth methods have the exact same effect.れていますが、Flask アプリが実際に実行された後に言及しています。

http://flask.pocoo.org/docs/quickstart/#debug-mode

上記の場合、最適なオプションは、アプリが実行される前にapp.debugの値をチェックしているため、最初の方法を使用することですが、定義されて設定された後に使用されます。app.debug

config-$ENV.pyこれを念頭に置いて、アプリが大きくなるにつれて、デバッグ フラグが設定されたファイルを定義できる、もう少し堅牢な構造を持つことを検討するかもしれません。

app/conf/config-dev.py

DEBUG = True
# ... other settings (e.g., log location, project root, etc)

app/conf/config-live.py

DEBUG = False
# ... other settings (e.g., log location, project root, etc)

app/conf/ _ _init_ _ .py

EMPTY FILE

アプリ/ _ _init_ _ .py

from flask import Flask

def create_app(env='dev'):
    app = Flask(__name__)
    app.config.from_object('app.conf.config-%s' % env)

    if app.debug:
        print 'running in debug mode'
    else:
        print 'NOT running in debug mode'
    return app

これは、アプリがデバッグ モードで実行されるかどうかをすぐに確認できることを意味します。また、アプリを実行するときに、どの環境で実行されているかをアプリに伝えることができます。 True または False に設定します。

run.py

from app import create_app
import os

port = int(os.environ.get('PORT', 5000))
app = create_app(env='dev') #Or pass 'live' to NOT be in debug mode
app.run(host='0.0.0.0', port=port)
于 2013-03-14T02:18:09.487 に答える