Day 6 - 编写配置文件

有了Web框架和ORM框架,我们就可以开始装配App了。

通常,一个Web App在运行时都需要读取配置文件,比如数据库的用户名、口令等,在不同的环境中运行时,Web App可以通过读取不同的配置文件来获得正确的配置。

由于Python本身语法简单,完全可以直接用Python源代码来实现配置,而不需要再解析一个单独的.properties或者.yaml等配置文件。

默认的配置文件应该完全符合本地开发环境,这样,无需任何设置,就可以立刻启动服务器。

我们把默认的配置文件命名为config_default.py

  1. # config_default.py
  2. configs = {
  3. 'db': {
  4. 'host': '127.0.0.1',
  5. 'port': 3306,
  6. 'user': 'www-data',
  7. 'password': 'www-data',
  8. 'database': 'awesome'
  9. },
  10. 'session': {
  11. 'secret': 'AwEsOmE'
  12. }
  13. }

上述配置文件简单明了。但是,如果要部署到服务器时,通常需要修改数据库的host等信息,直接修改config_default.py不是一个好办法,更好的方法是编写一个config_override.py,用来覆盖某些默认设置:

  1. # config_override.py
  2. configs = {
  3. 'db': {
  4. 'host': '192.168.0.100'
  5. }
  6. }

config_default.py作为开发环境的标准配置,把config_override.py作为生产环境的标准配置,我们就可以既方便地在本地开发,又可以随时把应用部署到服务器上。

应用程序读取配置文件需要优先从config_override.py读取。为了简化读取配置文件,可以把所有配置读取到统一的config.py中:

  1. # config.py
  2. configs = config_default.configs
  3. try:
  4. import config_override
  5. configs = merge(configs, config_override.configs)
  6. except ImportError:
  7. pass

这样,我们就完成了App的配置。

参考源码

day-06

原文: https://wizardforcel.gitbooks.io/liaoxuefeng/content/py3/112.html