一、配置文件
flask中的配置文件是一个flask.config.Config对象(继承字典)
一些重要的配置变量:
变量 | 描述 | 默认值 |
---|---|---|
DEBUG | 在调试错误的时候给你一些有用的工具。比如当一个请求导致异常的发生时,会出现的一个web界面的调用堆栈和Python命令行。 | 在开发环境下应该设置成True,在生产环境下应设置为False。 |
SECRET_KEY | Flask使用这个密钥来对cookies和别的东西进行签名。你应该在instance文件夹中设定这个值,并不要把它放入版本控制中。你可以在下一节读到关于instance文件夹的更多信息。 | 这应该是一个复杂的任意值。 |
BCRYPT_LEVEL | 如果使用Flask-Bcrypt来hash映射用户密码(如果没有,现在就用它),你需要为hash密码的算法指定“rounds”的值。设置的rounds值越高,计算一次hash花费的时间就越长(同样的效果作用于破解方,这个才是重要的)。rounds的值应该随着你的设备的计算能力的提升而增加 | 如果使用Flask-Bcrypt来hash映射用户密码(如果没有,现在就用它),你需要为hash密码的算法指定“rounds”的值。设置的rounds值越高,计算一次hash花费的时间就越长(同样的效果作用于破解方,这个才是重要的)。rounds的值应该随着你的设备的计算能力的提升而增加 |
二、配置方法
1. 直接配置
在文件中写 app.config['xxx'] = xxx
app = Flask(__name__)
app.config['DEBUG'] = True
# ps 由于app.config继承自字典,所以还能用app.config.update({'DEBUG':True})
2. 通过配置文件
app.config.from_pyfile('default_config.py') # 这里defualt_config.py是文件
# default_config.py
HOST = 'localhost'
PORT = 5000
DEBUG = True
3. 通过对象加载(常用)
config对象模块--采用了 基于类继承的config结构,保存默认配置的Config类作为基类,其他类继承之。
##创建一个文件 Configlist.py
class Config(object):
DEBUG = False
TESTING = False
DATABASE_URI = 'sqlite://:memory:'
class ProductionConfig(Config):
DATABASE_URI = 'mysql://user@localhost/foo'
class DevelopmentConfig(Config):
DEBUG = True
class TestingConfig(Config):
TESTING = True
from flask import Flask
from Configlist import *
app = Flask(__name__)
app.config.from_object(ProductionConfig)
print(app.config.get('DATABASE_URI')) # mysql://user@localhost/foo