flask基本配置和参数解释

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

flask基本配置和参数解释
flask可以通过配置⼀些⾃⾝带的参数来满⾜⼀些功能
配置⽅法:
⽅式⼀:
app.config['DEBUG'] = True
PS:由于Config对象本质上是字典,所以还可以使⽤app.config.update(...)
⽅式⼆:
app.config.from_pyfile("python⽂件名称")
如:
settings.py
DEBUG = True
app.config.from_pyfile("settings.py")
app.config.from_envvar("环境变量名称")
环境变量的值为python⽂件名称名称,内部调⽤from_pyfile⽅法
app.config.from_json("json⽂件名称")
JSON⽂件名称,必须是json格式,因为内部会执⾏json.loads
app.config.from_mapping({'DEBUG':True})
字典格式
app.config.from_object("python类或类的路径")
app.config.from_object('pro_flask.settings.TestingConfig')
settings.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
PS: 从sys.path中已经存在路径开始写
PS: settings.py⽂件默认路径要放在程序root_path⽬录,如果instance_relative_config为True,则就是instance_path⽬录
默认参数配置:
{
'DEBUG': False, # 是否开启Debug模式如果代码有修改随时⾃动重启
'TESTING': False, # 是否开启测试模式
'PROPAGATE_EXCEPTIONS': None, # 异常传播(是否在控制台打印LOG) 当Debug或者testing开启后,⾃动为True
'PRESERVE_CONTEXT_ON_EXCEPTION': None, # ⼀两句话说不清楚,⼀般不⽤它
'SECRET_KEY': None, # 之前遇到过,在启⽤Session的时候,⼀定要有它
'PERMANENT_SESSION_LIFETIME': 31, # days , Session的⽣命周期(天)默认31天
'USE_X_SENDFILE': False, # 是否弃⽤ x_sendfile
'LOGGER_NAME': None, # ⽇志记录器的名称
'LOGGER_HANDLER_POLICY': 'always',
'SERVER_NAME': None, # 服务访问域名
'APPLICATION_ROOT': None, # 项⽬的完整路径
'SESSION_COOKIE_NAME': 'session', # 在cookies中存放session加密字符串的名字
'SESSION_COOKIE_DOMAIN': None, # 在哪个域名下会产⽣session记录在cookies中
'SESSION_COOKIE_PATH': None, # cookies的路径
'SESSION_COOKIE_HTTPONLY': True, # 控制 cookie 是否应被设置 httponly 的标志,
'SESSION_COOKIE_SECURE': False, # 控制 cookie 是否应被设置安全标志
'SESSION_REFRESH_EACH_REQUEST': True, # 这个标志控制永久会话如何刷新
'MAX_CONTENT_LENGTH': None, # 如果设置为字节数, Flask 会拒绝内容长度⼤于此值的请求进⼊,并返回⼀个 413 状态码'SEND_FILE_MAX_AGE_DEFAULT': 12, # hours 默认缓存控制的最⼤期限
'TRAP_BAD_REQUEST_ERRORS': False,
# 如果这个值被设置为 True ,Flask不会执⾏ HTTP 异常的错误处理,⽽是像对待其它异常⼀样,
# 通过异常栈让它冒泡地抛出。

这对于需要找出 HTTP 异常源头的可怕调试情形是有⽤的。

'TRAP_HTTP_EXCEPTIONS': False,
# Werkzeug 处理请求中的特定数据的内部数据结构会抛出同样也是“错误的请求”异常的特殊的 key errors 。

# 同样地,为了保持⼀致,许多操作可以显式地抛出 BadRequest 异常。

# 因为在调试中,你希望准确地找出异常的原因,这个设置⽤于在这些情形下调试。

# 如果这个值被设置为 True ,你只会得到常规的回溯。

'EXPLAIN_TEMPLATE_LOADING': False,
'PREFERRED_URL_SCHEME': 'http', # ⽣成URL的时候如果没有可⽤的 URL 模式话将使⽤这个值
'JSON_AS_ASCII': True,
# 默认情况下 Flask 使⽤ ascii 编码来序列化对象。

如果这个值被设置为 False ,
# Flask不会将其编码为 ASCII,并且按原样输出,返回它的 unicode 字符串。

# ⽐如 jsonfiy 会⾃动地采⽤ utf-8 来编码它然后才进⾏传输。

'JSON_SORT_KEYS': True,
#默认情况下 Flask 按照 JSON 对象的键的顺序来序来序列化它。

# 这样做是为了确保键的顺序不会受到字典的哈希种⼦的影响,从⽽返回的值每次都是⼀致的,不会造成⽆⽤的额外 HTTP 缓存。

# 你可以通过修改这个配置的值来覆盖默认的操作。

但这是不被推荐的做法因为这个默认的⾏为可能会给你在性能的代价上带来改善。

'JSONIFY_PRETTYPRINT_REGULAR': True,
'JSONIFY_MIMETYPE': 'application/json',
'TEMPLATES_AUTO_RELOAD': None,
}。

相关文档
最新文档