'daki çalışma zamanı ortamını bulmanın kolay bir yolu var. Piramidte, şablonlarımı farklı çalışma zamanı ortamlarına göre oluşturmam gerekiyor - google analitiği etkinleştirin, minified code kullanın, vb. (Üretim sırasında). Mevcut ortamı bulmak için kolay bir yol var - hangi ini dosyasının kullanıldığını bulmak için mevcut bir bayrak olabilir mi?Pyramid
Pyramid
cevap
Piramit INI: çevresel değişkenlere erişimi
PYRAMID_ENV=production python server.py
Dokümanlar dosyalar arbitrary configuration entries'u tutabilir, bu nedenle dosyalarınızda üretim ve geliştirme dağıtımları arasında ayrım yapan bir bayrak neden olmasın?
Böyle yapardım;
[app:main]
production_deployment = True # Set to False in your development .ini file
Geçiş Piramit Konfiguratörüne bu değer: Üretim .ini dosyasında
def main(global_config, **settings):
# ...
from pyramid.settings import asbool
production_deployment = asbool(settings.get(
'production_deployment', 'false'))
settings['production_deployment'] = production_deployment
config = Configurator(settings=settings)
Artık Piramit kodunda hemen her yerden ayarlara erişebilirsiniz. Örneğin, bir istek işleyicide:
settings = request.registry.settings
if settings['production_deployment']:
# Enable some production code here.
Bununla birlikte, bu durumda daha ayrıntılı ayarları da kullanabilirim; Google Analytics'i etkinleştirmek için bir kaynak, kaynakları küçültmek için, vb. Bu şekilde geliştirme ortamınızdaki her bir ayarı test edebileceğiniz şekilde, bu anahtarlar için birim testleri yazabilirsiniz.
Bu tür bir şeyi, os.environ
aracılığıyla görülebilen PYRAMID_ENV
gibi bir değişken adlı bir çevresel değişken olarak ayarlıyorum. Kodunuzdaki Örneğin:
import os
pyramid_env = os.environ.get('PYRAMID_ENV', 'debug')
if pyramid_env == 'debug':
# Setup debug things...
else:
# Setup production things...
Sonra başlatma betiğindeki değişkeni olarak ayarlayabilir veya sunucuyu başlatırken: http://docs.python.org/library/os.html#os.environ
- 1. Pyramid
- 2. Pyramid/SQLAlchemy web uygulamalarını yükseltme
- 3. Dosya yükleme yöntemimi geliştirin Yardım (Pyramid framework)
- 4. 'İşlem' paketinde günlüğe kaydetmeyi devre dışı bırakma (Pyramid uygulaması)
- 5. Hangi Piramid sürümü var ve güncellemenin en iyi yolu nedir?
- 6. mod_wsgi error - class .__ dict__ kısıtlı modda erişilemiyor
- 7. alembic.ini için farklı .ini dosyası kullan
- 8. Pyramid'de form kullanımı
- 9. dağıtın piramit web uygulaması (apache/mod_wsgi)
- 10. Piramidin bir Sinyal/Slot sistemi var
- 11. İzin reddedildi veya Ana bilgisayar sorunları
- 12. PyXB ve python çerçeveleri
- 13. Piramit ve .ini yapılandırması
- 14. Python mikro çerçeve?
- 15. C# İşlemin gerçek zamanlı olarak çıkışını göster
- 16. GZIP sıkıştırma katman yazılımı kullanmalı mıyım?
- 17. Piramit Django'nun syncdb komutuna eşdeğer mi?
- 18. Kareler ile bir piramit inşa etmek için algoritma
- 19. piramit + jinja2 ve yeni GAE çalışma zamanı
- 20. Celery belleği serbest bırakmıyor
- 21. ImportError: Python 3 Ubuntu 'da test çalıştırırken' pysqlite2 'adında bir modül yok. Ubuntu
- 22. Bir istemcinin gerçek IP'sini bir nginx proxy'sinin arkasında bir piramit sunucusunda nasıl edinilir
- 23. Optik akış kullanarak optik akış
- 24. Piramit ele geçirme dostu istisna işleme
- 25. oauth2client/appengine.py, "InvalidResponseError: header değerlerinin str olması," unicode "olması gerekir" webapp2/python27/wsgi
Tatlı bro! Bu ipuçları için teşekkürler –