为webapp2组织我的配置变量

时间:2012-01-09 09:03:45

标签: python google-app-engine variables python-2.7 webapp2

为简单起见,我认为我需要将其重写为一个语句

config = {'webapp2_extras.jinja2': {'template_path': 'templates',
          'filters': {
          'timesince': filters.timesince,
          'datetimeformat': filters.datetimeformat},
          'environment_args': {'extensions': ['jinja2.ext.i18n']}}}

config['webapp2_extras.sessions'] = \
    {'secret_key': 'my-secret-key'}

如果我使用多个请求处理程序的多个文件,那么我想知道放在哪里。我应该把它放在一个文件中并将其导入其他文件中吗?由于会话代码是秘密的,您有什么建议通过源代码控制来处理它?要在提交源代码管理之前或之后始终更改密码?

谢谢

2 个答案:

答案 0 :(得分:6)

只需将'webapp2_extras.sessions'添加到您的dict初始值设定项:

config = {'webapp2_extras.jinja2': {'template_path': 'templates',
          'filters': {
          'timesince': filters.timesince,
          'datetimeformat': filters.datetimeformat},
          'environment_args': {'extensions': ['jinja2.ext.i18n']}},
          'webapp2_extras.sessions': {'secret_key': 'my-secret-key'}}

如果嵌套是明确的,这将更清楚:

config = {
  'webapp2_extras.jinja2': {
    'template_path': 'templates',
    'filters': {
      'timesince': filters.timesince,
      'datetimeformat': filters.datetimeformat
    },
    'environment_args': {'extensions': ['jinja2.ext.i18n']},
  },
  'webapp2_extras.sessions': {'secret_key': 'my-secret-key'}
}

答案 1 :(得分:3)

我建议将它们存储在数据存储区实体中以获得更大的灵活性,并在启动时将它们缓存在实例内存中。

如果您希望快速完成任务,您还可以考虑从源代码管理中排除config.py个文件。