gpt4 book ai didi

python - 在 Flask 应用程序中放置调试标志的位置

转载 作者:太空狗 更新时间:2023-10-29 21:32:09 27 4
gpt4 key购买 nike

阅读 flask 文档我看到通常有两个地方放置调试标志:

  • 创建 flask 对象之后

    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)

我在第二个选项(通过 app.run)中看到的问题是在执行 run 方法之前不会设置 True 值。因此,在我的 init.py 文件中,我将使用默认值 app.debug (False)。根据第一个选项,我没有这个问题。

以上是对的还是有什么我没看到的?那么无论应用程序如何,放置调试值的最佳位置是什么?

最佳答案

文档说这两种方法具有完全相同的效果。,但它们指的是在 Flask 应用程序实际运行之后。

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

在你上面描述的情况下,最好的选择是使用第一种方法,因为你正在检查 app.debug 的值 before 应用程序运行, 但在它被定义并且 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

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

这意味着您将能够立即检查您的应用程序是否将在 Debug模式下运行,并且当您运行您的应用程序时,您可以告诉它它在哪个环境中运行,这将定义是否或not debug 设置为 True 或 False。

运行.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)

关于python - 在 Flask 应用程序中放置调试标志的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com