我的代码如何判断它是否在Google的服务器或我的本地开发服务器上运行?

时间:2011-01-24 13:09:23

标签: python google-app-engine

  

可能重复:
  In Python, how can I test if I'm in Google App Engine SDK?

是否有环境标志来判断我的代码是在生产环境中还是在开发服务器上运行?

我希望能够使用if语句根据此标志执行不同的操作。

(具体情况:我想阅读的文本文件中的换行符在两种环境中的处理方式不同。)

2 个答案:

答案 0 :(得分:17)

if os.environ.get('SERVER_SOFTWARE','').startswith('Development'):
    DEBUG = True
    logging.debug("[*] Debug info activated")

答案 1 :(得分:1)

对于Google App Engine,由于我被告知您无法导入套接字,因此可以使用该事实来确定您是否在GAE上运行。这个解决方案不是100%万无一失,但它应该做你想要的。把它放在settings.py。

try:
    import socket
except ImportError:
    DEBUG = TRUE

对于任何使用Django但不使用GAE的人,您可以使用它。将“devserver”更改为开发服务器的主机名。

import socket
if socket.gethostname() == 'devserver':
    DEBUG = TRUE

然后,您需要在代码中检查DEBUG变量

from django.conf import settings

if settings.DEBUG:
    newline = '\n'