如何在Google App Engine上的django中自动设置DEBUG值

时间:2013-12-01 16:57:52

标签: python django google-app-engine

我认为问题就是这样......

我想在Google App Engine上运行时设置DEBUG = False,但想在本地计算机上设置为True ..

(我不使用django-nonrel)

3 个答案:

答案 0 :(得分:1)

我做

app = webapp.WSGIApplication([
  ...
], debug = os.environ.get('SERVER_SOFTWARE', 'Dev').startswith('Dev'))

这就像Thomas Orozco的代码片段,但默认情况下如果未设置SERVER_SOFTWARE则启用调试。只有当您碰巧在应用引擎环境之外使用一些代码时才会发生这种情况,因此您可以根据自己的需要调用默认值。

答案 1 :(得分:0)

使用SERVER_SOFTWARE环境变量。

按照the GAE docs中的说明:

  

SERVER_SOFTWARE:在开发Web服务器中,此值为“Development / X.Y”,其中“X.Y”是运行时的版本。在App Engine上运行时,此值为“Google App Engine / X.Y.Z”。

所以就这样做:

import os

def get_gae_debug():
    server =  os.environ.get("SERVER_SOFTWARE")

    if server is None:
        return False  # Unexpected, disable DEBUG.

    software, version = server.split("/", 1)
    return software == "Development"


DEBUG = get_gae_debug()

答案 2 :(得分:0)

此语法的最新更新(放在app settings.py上):

if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
    DEBUG = False
else:
    DEBUG = True