Flask-配置与调试

来源:互联网 发布:网络机柜32 编辑:程序博客网 时间:2024/06/06 05:35

配置管理

复杂的项目需要配置各种环境。如果设置项很少,可以直接硬编码进来,比如下面的方式:

app = Flask(__name__)app.config['DEBUG'] = True

app.config是flask.config.Config类的实例,继承自Python内置数据结构dict,所以可以使用update方法:

app.config.update(    DEBUG = True,    ...)

app.config内置的全部配置变量可以参看Builtin Configuration Values。如果设置选项很多,想要集中管理设置项,应该将他们存放到一个文件里面。app.config支持多种更新配置的方式。假设现在有个叫做settings.py的配置文件,其中的内容如下:

A = 1

可以选择如下三种方式加载:

  • 通过配置文件加载
# 通过模块名的字符串app.config.from_object('settings')  # 或者:import settingsapp.config.from_object(settings)
  • 通过文件名字加载。但是不限于只使用.py后缀的文件名
# slient=True该文件不存在时不抛异常,返回False,默认是会抛出异常app.config.from_pyfile('settings.py',slient=True)

调试模式

虽然app.run()这样的方式适用于启动本地的开发服务器,但是每次修改代码后都要手动重启的话,既不方便也不够优雅。如果启用了调试模式,服务器会在代码修改后自动重新载入,并在发生错误时提供一个能获得错误上下文及可执行代码的调试页面。
有两种途径来启动调试模式:

  • 直接在应用对象上设置:
app.debug = Trueapp.run()
  • 作为run的参数传入:
app.run(debug=True)

需要注意,开启调试模式会成为一个巨大的安全隐患,因此他绝对不能用于生产环境中。