【问题标题】:How to make changes to os.environ dict available application wide如何更改 os.environ dict 在应用程序范围内可用
【发布时间】:2012-06-19 08:43:18
【问题描述】:

在我的应用引擎/django 应用程序的main.app 中,控件实际上是由 django WSGI 处理程序处理的,我将DJANGO_SETTINGS_MODULE 设置如下:

from django.conf import settings
settings._target = None

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

但是当我尝试在其他视图中获取它时:

y=os.environ['DJANGO_SETTINGS_MODULE']

它给了我关键错误。如何在应用范围内设置值?

【问题讨论】:

  • 如果 os.environ 是每个请求的线程本地,您可能必须在处理程序的开头注册设置模块(在 get 或 post 方法内)。值得一试。
  • 我使用的是 django 而不是 webapp2。所以你想让我在我使用它的每个 django 视图中注册这个模块......有没有更好的方法?

标签: django google-app-engine python-2.7


【解决方案1】:

您可以在 app.yaml 文件中定义为每个请求设置的环境变量。看: https://developers.google.com/appengine/docs/python/config/appconfig#env_variables

【讨论】:

  • 这是一个很好的建议,这真的很有帮助
【解决方案2】:

当使用 Python 2.7 运行时,os.environ 实际上是一个线程本地字典,它会影响 WSGI 环境。您可以尝试一件事:在 appengine_config.py 中进行设置。

【讨论】:

  • Anand 的回答要好得多。
猜你喜欢
  • 1970-01-01
  • 2016-06-12
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
相关资源
最近更新 更多