2013-02-24 13 views
14

मैं कुप्पी का उपयोग करें और मैं यह त्रुटि आई जब मैं इस यूआरएल फोन:jinja2.exceptions.TemplateNotFound त्रुटि

@app.route('/login') 
def login(): 
    if authenticateForPanel(): 
     return redirect(url_for("panel")) 
    else: 
     getParam = request.args.getlist('redirect_uri') 
     if getParam: 
      ref =getParam[0] 
     else: 
      ref="/panel" 
     return render_template(themesDir + g.blogOptions['active_theme']+'/login.html', blogOptions = g.blogOptions, ref=ref) 

और ट्रैस बैक:

Traceback (most recent call last): 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1701, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1689, in wsgi_app 
    response = self.make_response(self.handle_exception(e)) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1687, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1360, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1358, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/app.py", line 1344, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "/Users/ozcan/Documents/python/app.py", line 209, in login 
    return render_template(themesDir + g.blogOptions['active_theme']+'/login.html', blogOptions = g.blogOptions, ref=ref) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/templating.py", line 124, in render_template 
    return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list), 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/jinja2/environment.py", line 758, in get_or_select_template 
    return self.get_template(template_name_or_list, parent, globals) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/jinja2/environment.py", line 719, in get_template 
    return self._load_template(name, self.make_globals(globals)) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/jinja2/environment.py", line 693, in _load_template 
    template = self.loader.load(self, name, globals) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/jinja2/loaders.py", line 115, in load 
    source, filename, uptodate = self.get_source(environment, name) 
    File "/Users/ozcan/Library/Python/2.7/lib/python/site-packages/flask/templating.py", line 61, in get_source 
    raise TemplateNotFound(template) 
TemplateNotFound: static/themes/default/login.html 

मैं कर रहा हूँ /login यहाँ मेरी प्रवेश पद्धति है बिल्कुल यकीन है कि login.html वहां है (static/themes/default/404.html)। ऐसा क्यों हो सकता है?

उत्तर

3

मुझे लगता है कि आपको themesDir को पूर्ववत नहीं करना चाहिए। आप केवल टेम्पलेट के फ़ाइल नाम को फ्लास्क पर पास करते हैं, फिर यह आपके पायथन फ़ाइल के सापेक्ष templates नामक फ़ोल्डर में दिखाई देगा।

+0

नहीं, यह काम नहीं करता है, त्रुटि वास्तव में कहती है एक ही निर्देशिका जहां फ़ाइल मौजूद है – saidozcan

+1

आपको अपनी थीम को 'स्थिर' फ़ोल्डर में नहीं रखना चाहिए! अन्यथा हर कोई आपके टेम्पलेट डाउनलोड करने में सक्षम है! –

+0

मेरा उद्देश्य यह है कि, संपत्ति फ़ोल्डर्स प्रत्येक विषय में होना चाहिए। मैं इसे किसी अन्य तरीके से नहीं कर सका। यहां मेरी समस्या है: http://stackoverflow.com/questions/15027930/changing-assets-folder-directory-in -फ्लास्क – saidozcan

21

आपने अपना टेम्पलेट गलत जगह पर रखा है। फ्लास्क दस्तावेज़ों से:

फ्लास्क टेम्पलेट फ़ोल्डर में टेम्पलेट्स की तलाश करेगा। तो यदि आपका एप्लिकेशन एक मॉड्यूल है, तो यह फ़ोल्डर उस मॉड्यूल के बगल में है, यदि यह पैकेज है तो यह वास्तव में आपके पैकेज के अंदर है: अधिक जानकारी के लिए दस्तावेज़ देखें: http://flask.pocoo.org/docs/quickstart/#rendering-templates

+1

यह मेरे लिए चाल है .... धन्यवाद @ माजिद – omah94