2012-06-11 14 views
5

में रनटाइम पर्यावरण खोजने का कोई आसान तरीका है पिरामिड में, मुझे अपने टेम्पलेट्स को विभिन्न रनटाइम वातावरण के अनुसार प्रस्तुत करना होगा - Google Analytics सक्षम करें, मिनीफाईड कोड का उपयोग करें, आदि (जब उत्पादन में)। क्या वर्तमान वातावरण को खोजने का कोई आसान तरीका है - शायद यह पता लगाने के लिए कि कौन सी आईएनआई फाइल का उपयोग किया गया था?क्या पिरामिड

उत्तर

15

पिरामिड INI:

PYRAMID_ENV=production python server.py 

पर्यावरण चर के लिए उपयोग पर डॉक्स फाइलें arbitrary configuration entries रख सकती हैं, तो क्यों अपनी फाइलों में एक ध्वज शामिल नहीं है जो उत्पादन और विकास तैनाती के बीच अंतर करता है?

मैं इसे ऐसा करूँगा;

[app:main] 
production_deployment = True # Set to False in your development .ini file 

पास पिरामिड कौन्फ़िगरेटर करने पर यह मान: अपने उत्पादन .ini फ़ाइल में

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) 

अब आप अपने पिरामिड कोड में बस के बारे में कहीं से भी सेटिंग को एक्सेस कर सकते हैं। उदाहरण के लिए, एक अनुरोध हैंडलर में:

settings = request.registry.settings 
if settings['production_deployment']: 
    # Enable some production code here. 

हालांकि, मैं भी इस मामले में अधिक पैमाने के दाना में से सेटिंग्स का उपयोग करें चाहते हैं; Google Analytics को सक्षम करने के लिए एक ध्वज, संसाधनों को कम करने के लिए एक ध्वज इत्यादि। इस तरह आप अपने विकास पर्यावरण में प्रत्येक व्यक्तिगत सेटिंग का परीक्षण कर सकते हैं, इन स्विचों के लिए यूनिट परीक्षण आदि लिख सकते हैं।

+0

स्वीट ब्रो! उन युक्तियों के लिए धन्यवाद –

3

मैंने इस तरह की चीज़ को पर्यावरणीय चर के रूप में सेट किया है जैसे PYRAMID_ENV जिसे os.environ के माध्यम से देखा जा सकता है। अपने कोड में उदाहरण के लिए:

import os 

pyramid_env = os.environ.get('PYRAMID_ENV', 'debug') 

if pyramid_env == 'debug': 
    # Setup debug things... 
else: 
    # Setup production things... 

तो फिर तुम init स्क्रिप्ट में चर सेट या कर सकते हैं जब सर्वर शुरू कर: http://docs.python.org/library/os.html#os.environ

संबंधित मुद्दे