Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can my code tell if it's running on Google's server or my local development server? [duplicate]

Possible Duplicate:
In Python, how can I test if I'm in Google App Engine SDK?

Is there an environment flag that will tell if my code is running in production or on the development server?

I'd like to be able to use an if statement to do something different depending on this flag.

(Specific case: newlines in a text file I want to read are treated differently in the two environments.)

like image 525
jonpalin Avatar asked Jan 24 '11 13:01

jonpalin


2 Answers

if os.environ.get('SERVER_SOFTWARE','').startswith('Development'):
    DEBUG = True
    logging.debug("[*] Debug info activated")
like image 167
Birt Avatar answered Nov 15 '22 02:11

Birt


For Google App Engine, since I've been told that you can't import socket you could probably use that fact to determine if you're running on GAE. This solution isn't 100% foolproof, but it should do what you want. Put this in settings.py.

try:
    import socket
except ImportError:
    DEBUG = TRUE

For anyone using Django but not GAE, you can use this instead. Change 'devserver' to whatever the hostname of your development server is.

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

Then wherever you need to check the DEBUG variable in your code

from django.conf import settings

if settings.DEBUG:
    newline = '\n'
like image 42
jonescb Avatar answered Nov 15 '22 04:11

jonescb