2012-01-31 11 views
5

में होने के बावजूद Bottle.py कैशिंग टेम्पलेट्स मैंने अभी GAE पर अपना पहला Bottle.py ऐप बनाया है। यह काम कर रहा है सिवाय इसके कि जब मैं टेम्पलेट्स बदलता हूं तो मुझे परिवर्तन देखने के लिए dev सर्वर को पुनरारंभ करना होगा। दस्तावेज़ों का कहना है कि बोतल कैशिंग को बोतल.डेबग (ट्रू) के दौरान अक्षम किया जाना चाहिए, और आप बोतल को कॉल कर सकते हैं। TEMPLTE.clear() साथ ही, लेकिन उन कार्यों में से कोई भी नहीं। मैंने रन (पुनः लोडर = ट्रू) सेट करने का भी प्रयास किया लेकिन इससे त्रुटि उत्पन्न होती है। मैं क्या गलत कर रहा हूं? क्या बोतल.डेबग() जीएई पर किसी और के लिए काम करता है?डीबग मोड

import bottle 
bottle.debug(True) 
bottle.TEMPLATES.clear() 

@bottle.route('/') 
def index(name='World'): 
    return bottle.template('main') 

bottle.run(server='gae') 

अद्यतन: बजाय (सर्वर = 'gae') bottle.run का उपयोग कर के, मैं शामिल मानक main() अपने आप में कार्य और अब यह काम करता है।

def main(): 
    app = bottle.default_app() 
    util.run_wsgi_app(app) 

if __name__ == "__main__": 
    main() 
+0

आप 'logging.info (...)' उपयोग करने के लिए लॉग के लिए लिखने के लिए bottle.py फ़ाइल को संशोधित करने की कोशिश की है डीईबीयूजी ग्लोबल का मूल्य जब 'टेम्पलेट (...)' कहा जाता है? – philofinfinitejest

+0

यह कहता है "झूठा" ... – arkanciscan

उत्तर

0

मानक विधि बोतल/GAE डॉक द्वारा शुरू की गई है:

app = bottle.app()

तो dev_appserver.py आह्वान, यह app.yaml पढ़ता है और एक के लिए स्क्रिप्ट आप परिभाषित से अपने अनुप्रयोग आयात करते हैं, और बाकी सब कुछ संभाल जीएई पर्यावरण।

आपको सीधे अपना .py नहीं चलाना चाहिए। बोतल के रास्ते से चलने से टेम्पलेट कैश तंत्र सहित dev_appserver से उन हैंडल को छोड़ दिया जाएगा। बेशक, Google से util का उपयोग करके चाल और काम करता है, लेकिन uwsgi या अन्य wsgi से संबंधित प्रोजेक्ट के दस्तावेज़ों के अनुसार, स्क्रिप्ट मॉड्यूल में app चर है, ऑब्जेक्ट को ऊपरी हैंडलिंग के लिए पेश किया जाना चाहिए।

0
प्रलेखन से

:

टेम्पलेट्स संकलन के बाद स्मृति में कैश कर रहे हैं। जब तक आप टेम्पलेट कैश साफ़ नहीं करते हैं तब तक टेम्पलेट फ़ाइलों में किए गए संशोधनों का कोई प्रभाव नहीं पड़ेगा। ऐसा करने के लिए कॉल बोतल.TEMPLATES.clear()। डीबग मोड में कैशिंग अक्षम है।

विधि रन:

bottle.run(debug = True) 

debuggmode सक्षम हो जाएगा।

डिफ़ॉल्ट टेम्पलेट स्थिर संस्करण 0.11.6 में सरल टेम्पलेट है।

आप अपने पसंदीदा टेम्पलेट इंजन के लिए अपने स्वयं के एडाप्टर लिख सकते हैं या पूर्वनिर्धारित एडेप्टर में से एक का उपयोग करें।

क्लास, यूआरएल, डेकोरेटर, प्रस्तुत, समारोह

SimpleTemplate, SimpleTemplate, इंजन, (दृश्य), टेम्पलेट()

: इस समय वहाँ चार पूरी तरह से समर्थित टेम्पलेट इंजन

मकोटेम्प्लेट, http://www.makotemplates.org, mako_view(), mako_template()

CheetahTemplate, http://www.cheetahtemplate.org/, cheetah_view(), cheetah_template()

Jinja2Template, http://jinja.pocoo.org/, jinja2_view(), jinja2_template()

>>>, कुछ अन्य टेम्पलेट इंजन का उपयोग कर प्रयास करें डिफ़ॉल्ट से । < < <

MakoTemplate आपके डिफ़ॉल्ट टेम्पलेट इंजन के रूप में उपयोग करने के लिए, बस इसके विशेष डेकोरेटर आयात और प्रस्तुत करना समारोह:

from bottle import mako_view as view, mako_template as template 

>>> चेक आप न कि में दोहराया फ़ाइलें दृश्य पथ < < <

TEMPLATE_PATH = ['./', './views/'] 

बाहर प्रिंट >>> टेम्पलेट्स शब्दकोश < < <

print bottle.TEMPLATES 
संबंधित मुद्दे