2011-09-27 21 views
15

प्रत्येक पिरामिड एप्लिकेशन में एक .ini फ़ाइल है जिसमें इसकी सेटिंग्स होती है। उदाहरण के लिए, एक डिफ़ॉल्ट की तरह लग सकता है:पिरामिड और .ini कॉन्फ़िगरेशन

[app:main] 
use = egg:MyProject 
pyramid.reload_templates = true 
pyramid.debug_authorization = false 
pyramid.debug_notfound = false 
pyramid.debug_routematch = false 
... 

मैं अगर यह वहाँ में अपने स्वयं के विन्यास मान जोड़ने के लिए संभव है सोच रहा हूँ, और रन-टाइम में उन्हें पढ़ने के (ज्यादातर एक दृश्य प्रतिदेय से)। उदाहरण के लिए, मैं एक अलग .ini फ़ाइल है और स्टार्टअप के दौरान यह पार्स करने के लिए

[app:main] 
blog.title = "Custom blog name" 
blog.comments_enabled = true 
... 

के लिए चाहते हो सकता है या यह बेहतर है?

उत्तर

26

निश्चित रूप से आप कर सकते हैं।

अपने प्रवेश बिंदु समारोह (ज्यादातर मामलों में __init__.py में main(global_config, **settings)) में, अपने config settings चर में पहुँचा जा सकता है।

उदाहरण के लिए, अपने .ini में:

[app:main] 
blog.title = "Custom blog name" 
blog.comments_enabled = true 

अपने __init__.py में:

def main(global_config, **settings): 
    config = Configurator(settings=settings) 
    blog_title = settings['blog.title'] 
    # you can also access you settings via config 
    comments_enabled = config.registry.settings['blog.comments_enabled'] 
    return config.make_wsgi_app() 

latest Pyramid docs के अनुसार, आप सेटिंग्स के लिए एक दृश्य समारोह में request.registry.settings के माध्यम से पहुँच सकते हैं। साथ ही, जहां तक ​​मुझे पता है, यह event.request.registry.settings के माध्यम से ईवेंट ग्राहकों में होगा।

किसी अन्य फ़ाइल का उपयोग करने के बारे में आपके प्रश्न के बारे में, मुझे पूरा यकीन है कि आपके सभी कॉन्फ़िगरेशन को नियमित रूप से इनिट फ़ाइल में डालने का अच्छा अभ्यास है, जैसा आपने किया था।

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