【问题标题】:Where to put the debug flag in flask applications在烧瓶应用程序中放置调试标志的位置
【发布时间】:2013-03-13 20:59:18
【问题描述】:

阅读烧瓶文档我发现有两个地方通常放置调试标志:

  • 烧瓶对象创建后

    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) 的默认值。第一个选项我没有这个问题。

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

【问题讨论】:

    标签: python flask


    【解决方案1】:

    文档说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
    

    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
    

    这意味着您将能够立即检查您的应用程序是否将在调试模式下运行,并且当您运行您的应用程序时,您可以告诉它正在运行的环境,这将定义是否not debug 设置为 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 2011-03-08
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多