2013-02-24 32 views
14

ben bu url çağırdığınızda ı şişeyi kullanmak ve ben bu hata var:jinja2.exceptions.TemplateNotFound hatası

@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) 

Ve traceback: Ben

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 İşte benim giriş yöntemidir login.html orada kesinlikle emin (static/themes/default/404.html) .Neden bu oluşabilir?

cevap

3

Sana themesDir başa ekleyerek gerektiğini düşünüyorum. Sadece bundan sonra da piton dosyasına templates göreceli olarak adlandırılan bir klasörde bakacağız, şişeye şablonun dosya adını geçmektedir.

+0

Hayır, işe yaramadı, hata tam olarak diyor Dosyanın bulunduğu dizin – saidozcan

+1

Temanızı '' statik'' klasörüne koymamalısınız! Aksi halde herkes şablonlarınızı indirebilir! –

+0

Amacım, varlıklar klasörleri her tema içinde olması gerekir.Ben başka bir şekilde bunu yapamam.Onun benim sorunum: http://stackoverflow.com/questions/15027930/changing-assets-folder-directory-in -flask – saidozcan

21

Yanlış yerde şablonunuzu koydu. Şişesi Dokümanlar:

Şişesi şablonları klasöründeki şablonlar arayacaktır. Uygulamanız bir modül ise, bu klasör bu paketin yanındaysa, paketinizin içinde bir paket varsa: Daha fazla bilgi için belgelere bakın: http://flask.pocoo.org/docs/quickstart/#rendering-templates

+1

bu benim için hile yaptı ... Teşekkürler @Majid – omah94