整理我的webapp2配置变量

2 投票
2 回答
625 浏览
提问于 2025-04-17 09:50

为了简单起见,我觉得我需要把这个重写成一句话。

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 个回答

3

我建议把这些存储在一个数据存储实体里,这样可以更灵活,并且在启动时把它们缓存到实例内存中。

如果你想快速完成事情,你也可以考虑有一个 config.py 文件,这个文件可以不放在源代码管理里。

6

只需要在你的字典初始化时添加 'webapp2_extras.sessions' 就可以了:

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'}
}

撰写回答