2011-01-24 11 views
5

Eventuali duplicati:
In Python, how can I test if I'm in Google App Engine SDK?Come può il mio codice dire se è in esecuzione sul server di Google o sul mio server di sviluppo locale?

C'è una bandiera ambiente che ci dirà se il mio codice è in esecuzione in produzione o sul server di sviluppo?

Mi piacerebbe essere in grado di utilizzare un'istruzione if per fare qualcosa di diverso a seconda di questo flag.

(Caso specifico:. Ritorni a capo in un file di testo che voglio leggere vengono trattati in modo diverso nei due ambienti)

risposta

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

** thats un modo per andare ** - troppo male Google non fornisce una semplice funncion come quella :(Proprio prendi SERVER_SOFTWARE in google_appengine SDK e troverai ~ 8 chiamate che fanno quel test – lukmdo

1

Per Google App Engine, dal momento che mi è stato detto che non è possibile importare socket probabilmente potresti usare questo fatto per determinare se stai utilizzando GAE. Questa soluzione non è sicura al 100%, ma dovrebbe fare quello che vuoi. Metti questo in settings.py.

try: 
    import socket 
except ImportError: 
    DEBUG = TRUE 

Per chiunque usi Django ma non GAE, è possibile utilizzare questo invece. Cambia "devserver" in qualunque sia il nome host del tuo server di sviluppo.

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

Allora, ovunque è necessario controllare la variabile DEBUG nel codice

from django.conf import settings 

if settings.DEBUG: 
    newline = '\n' 
+0

Perché i downvotes? – jonescb

+0

Non penso che il motore app ti permetta di importare socket. Potresti voler modificare il tuo post in modo che le informazioni sbagliate non vengano diffuse . (Ti ho revocato perché non penso che la gente debba parlare di meno e non dargli una ragione.) – mcotton

+0

Oh grazie. Non uso GAE, b questo funziona per Django semplice. Non mi rendevo conto di quanto fosse limitato il GAE. – jonescb

Problemi correlati