2011-01-24 17 views
5

Olası Çoğalt:
In Python, how can I test if I'm in Google App Engine SDK?Kodum, Google'ın sunucusunda veya yerel geliştirme sunucusunda çalışıp çalışmadığını nasıl anlayabilir?

benim kod üretiminde veya geliştirme sunucusunda çalışıyorsa söyleyecektir bir ortam bayrağı var mıdır?

Bu bayrağa bağlı olarak farklı bir şey yapmak için bir if ifadesini kullanabilmek isterim.

(Özgül olgusu. İki ortamlarda farklı olarak ele alınır okumak istiyorum bir metin dosyasına yeni satırlara)

Google App Engine için

cevap

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

** ** gitmek için bir yol şu google_appengine SDK içinde SERVER_SOFTWARE sonra bakmak ve bu test yapıyor ~ 8 aramalar bulacaksınız – lukmdo

1

, duydum ki beri ithalat olmayanlar şeklinde soket muhtemelen GAE üzerinde koşuyor olup olmadığını belirlemek için bu gerçeği kullanabilirsiniz. Bu çözüm% 100 kusursuz değil, ama istediğini yapmalı. Bunu settings.py'ye yerleştirin.

try: 
    import socket 
except ImportError: 
    DEBUG = TRUE 

Django kullanan ancak GAE kullanmayan herkes için bunu kullanabilirsiniz. Geliştirme sunucunuzun ana makine adı ne olursa olsun 'devserver' öğesini değiştirin. çok kötü google bu bir :(Tıpkı basit funncion sağlamaz - kodunuzda DEBUG değişkeni kontrol gereken yere

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

Sonra

from django.conf import settings 

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

Neden downvotes? – jonescb

+0

Ben app motoru soket ithal etmenizi sağlar sanmıyorum.Yani yanlış bilgi yayılmadığı için yayınınızı düzenlemek isteyebilirsiniz (Seni reddettim çünkü insanların reddetmesi ve bir sebep ifade etmemesi gerektiğini düşünüyorum.) – mcotton

+0

Teşekkür ederim. GAE kullanmıyorum, b ut bu düz Django için çalışıyor. GAE'nin ne kadar sınırlı olduğunu anlamadım. – jonescb

İlgili konular