阅读烧瓶文档我发现有两个地方通常放置调试标志:
在创建烧瓶对象之后
app = Flask(__name__)
app.debug = True
Run Code Online (Sandbox Code Playgroud)或者通过run方法
app.run(host='0.0.0.0', debug = True)
Run Code Online (Sandbox Code Playgroud)在我的项目中,我有app/init .py文件:
from flask import Flask
app = Flask(__name__)
#app.debug = True
from app import views
if app.debug == True:
...
...
Run Code Online (Sandbox Code Playgroud)
和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)
Run Code Online (Sandbox Code Playgroud)
我在第二个选项(app.run)中看到的问题是,在执行run方法之前不会设置True值.因为在我的init .py文件中,我将使用默认值app.debug(False).通过第一个选项我没有那个问题.
是上面的权利还是有什么我看不到的?无论应用程序如何,放置调试值的最佳位置是什么?
Chr*_*nel 13
文档说Both methods have the exact same effect.,但他们指的是Flask应用程序实际运行后.
http://flask.pocoo.org/docs/quickstart/#debug-mode
在上面描述的情况下,最好的选择是使用第一种方法,因为您在运行应用程序之前检查其app.debug值,但在定义它之后和之后设置.app.debug
考虑到这一点,随着您的应用程序变得更大,您可能会考虑使用稍微更健壮的结构,您可以在其中定义一个config-$ENV.py设置了调试标志的文件.
应用程序/ CONF/config-dev.py
DEBUG = True
# ... other settings (e.g., log location, project root, etc)
Run Code Online (Sandbox Code Playgroud)
应用程序/ CONF/config-live.py
DEBUG = False
# ... other settings (e.g., log location, project root, etc)
Run Code Online (Sandbox Code Playgroud)
app/conf/_ _init_ _ .py
EMPTY FILE
Run Code Online (Sandbox Code Playgroud)
app/_ _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
Run Code Online (Sandbox Code Playgroud)
这意味着您将能够立即检查您的应用程序是否将以调试模式运行,并且当您运行应用程序时,您可以告诉它正在运行哪个环境,这将定义调试是否是设置为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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10267 次 |
| 最近记录: |