配置文件

flask中的配置文件是一个flask.config.Config对象(继承字典)

默认配置为:

 {
'DEBUG': get_debug_flag(default=False), 是否开启Debug模式
'TESTING': False, 是否开启测试模式
'PROPAGATE_EXCEPTIONS': None,
'PRESERVE_CONTEXT_ON_EXCEPTION': None,
'SECRET_KEY': None,
'PERMANENT_SESSION_LIFETIME': timedelta(days=31),
'USE_X_SENDFILE': False,
'LOGGER_NAME': None,
'LOGGER_HANDLER_POLICY': 'always',
'SERVER_NAME': None,
'APPLICATION_ROOT': None,
'SESSION_COOKIE_NAME': 'session',
'SESSION_COOKIE_DOMAIN': None,
'SESSION_COOKIE_PATH': None,
'SESSION_COOKIE_HTTPONLY': True,
'SESSION_COOKIE_SECURE': False,
'SESSION_REFRESH_EACH_REQUEST': True,
'MAX_CONTENT_LENGTH': None,
'SEND_FILE_MAX_AGE_DEFAULT': timedelta(hours=12),
'TRAP_BAD_REQUEST_ERRORS': False,
'TRAP_HTTP_EXCEPTIONS': False,
'EXPLAIN_TEMPLATE_LOADING': False,
'PREFERRED_URL_SCHEME': 'http',
'JSON_AS_ASCII': True,
'JSON_SORT_KEYS': True,
'JSONIFY_PRETTYPRINT_REGULAR': True,
'JSONIFY_MIMETYPE': 'application/json',
'TEMPLATES_AUTO_RELOAD': None,
}

配置方法:

(1) 直接在文件中 写 app.config['xxx'] = 'xxx'

app.config['DEBUG'] = True

PS: 由于Config对象本质上是字典,所以还可以使用app.config.update(...)

    注意:
某个对象 可以进行 a['aa'] = 111的操作的时候,
说明 (1) 重写了 __setitem__ 方法
(2) 继承了 dict

(2) 通过 config对象 的 from_pyfile方法:

    .. 新建一个 settings.py 的文件(统一管理)   :  里面直接 配置 XXX = 1111
.. app.config.from_pyfile('settings.py')

(3) 通过 config 对象的 from_environ 方法 (与上一个类似)

    import os
os.environ('xxxx') = 'settings.py' app.config.from_environ('xxxx')

(4) 通过 config 对象的 from_object 方法 (导入文件中的一个类,不同的环境用不同的配置文件)

    推荐使用

    app.config.from_object('settings.DevConfig')  # 开发的配置
app.config.from_object('settings.TestConfig') # 测试的配置
app.config.from_object('settings.ProConfig') # 正式的配置 settings.py : class BaseConfig(object):
xxx = 111 # 公用的配置 class TestConfig(BaseConfig):
DB = '127.0.0.1'
class DevConfig(BaseConfig):
DB = 'xx.x.0x.1'
class ProConfig(BaseConfig):
DB = 'xx.0x.0.1'

使用,获取 配置的时候:

           from flask import current_app  # 可以获取当前的 app

           c = current_app.config.get('xxx')

最新文章

  1. CentOS 7网卡网桥、绑定设置
  2. PHP表单header post get
  3. 作业七:团队项目——Alpha版本冲刺阶段-09
  4. 用java操作XML文件(DOM解析方式)
  5. WIN8 下Cisco VPN连接 出现vpn 422 failed to enable virtual adapter错误
  6. 解决Duilib创建的win32窗口拖到屏幕上边缘自动最大化
  7. 搭建SpringMVC+MyBatis开发框架三
  8. CentOS网络接口配置文件ifcfg-eth详解
  9. Asp.Net Core 2.0 之旅---在Ubuntu上部署WEB应用程序
  10. java线程同步小结
  11. 2018-2019-2 20165237《网络对抗技术》Exp2 后门原理与实践
  12. Ignite(二): 架构及工具
  13. SSH使用小记
  14. BZOJ1001[BeiJing2006]狼抓兔子——最小割
  15. Python3 tkinter基础 Frame bind 捕捉多键同时按
  16. HDU 4280 Island Transport(网络流,最大流)
  17. canvas版《俄罗斯方块》
  18. Activity的onPause()、onStop()和onDestroy()里要做的事情
  19. JavaScript中构造函数
  20. 李氏滑动事件冲突解决方案 之 处理子ViewGroup的超棒方案

热门文章

  1. MYSQL有那些优化?
  2. js 技巧 (五)
  3. Linux终端以及bash
  4. Mysql:零散记录
  5. python_字符串常用方法
  6. Fiddler基本用法:手机抓包
  7. 九度oj 题目1047:素数判定
  8. Linux下汇编语言学习笔记32 ---
  9. Codeforces Educational Round 23
  10. Eclipse的SVN插件 Subclipse