2017-11-03 29 views
-1

私はプロジェクト用のウェブサイトを作っていますが、このエラーが発生し続ける。フラスコ:jinja2.exceptions.TemplateNotFoundエラー

jinja2.exceptions.TemplateNotFound:home.html

その後、私はこれを取得する:あなたのhtmlファイルがでていないよう

File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1997, in __call__ 
return self.wsgi_app(environ, start_response) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1985, in wsgi_app 
response = self.handle_exception(e) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1540, in handle_exception 
reraise(exc_type, exc_value, tb) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\_compat.py", line 33, in reraise 
raise value 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1982, in wsgi_app 
response = self.full_dispatch_request() 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request 
rv = self.handle_user_exception(e) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1517, in handle_user_exception 
reraise(exc_type, exc_value, tb) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\_compat.py", line 33, in reraise 
raise value 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request 
rv = self.dispatch_request() 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1598, in dispatch_request 
return self.view_functions[rule.endpoint](**req.view_args) 
File "C:\Users\J\Desktop\hello.py", line 5, in home 
return render_template('home.html') 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\templating.py", line 133, in render_template 
return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list), 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\jinja2\environment.py", line 869, in get_or_select_template 
return self.get_template(template_name_or_list, parent, globals) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\jinja2\environment.py", line 830, in get_template 
return self._load_template(name, self.make_globals(globals)) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\jinja2\environment.py", line 804, in _load_template 
template = self.loader.load(self, name, globals) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\jinja2\loaders.py", line 113, in load 
source, filename, uptodate = self.get_source(environment, name) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\templating.py", line 57, in get_source 
return self._get_source_fast(environment, template) 
File "C:\Users\J\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\templating.py", line 85, in _get_source_fast 
raise TemplateNotFound(template) 

はまた、ここに私のコードは

from flask import Flask, render_template 
app = Flask(__name__) 
@app.route('/') 
def home(): 
    return render_template('home.html') 
@app.route('/about/') 
def about(): 
    return render_template('about.html') 
if __name__ == '__main__': 
    app.run(debug=True) 
+2

テンプレートはどこにありますか? [クイックスタート](http://flask.pocoo.org/docs/0.12/quickstart/)を見ると、「Flaskはテンプレートフォルダ内のテンプレートを探します」と表示されます。あなたのテンプレートはどこにありますか? –

答えて

1

ようです同じディレクトリ。ファイルを読んでみて、それを開くことができるかどうか確認してください。

with open('home.html', 'r') as html_file: 
    html= html_file.read() 

か、あなたはあなたのテンプレートのHTMLファイルがtemplatesと呼ばれるサブディレクトリに配置されていることを確認する必要があり、この

/home.py 
/templates 
    /home.html 
+0

私はそれを試みましたが、私はまだ同じエラーを受けています – vegasnoob

+0

ポール・ルーニーの答えは正しいです。あなたのdir構造は何ですか? –

2

のようになります。この

import os.path 
os.path.isfile('home.html') 

あなたのディレクトリ構造をしてみてください。

もしそれらがそこにあれば、それはすべて動作します。

render_templateの簡単な説明は、flask quickstartを参照してください。

+0

私のhtmlファイルはすべてテンプレートフォルダにあり、それでも動作しません。他の提案はありますか? – vegasnoob

+0

アプリケーションがパッケージとして構成されている場合、テンプレートはモジュールルートの 'templates'ディレクトリに存在すると見なされます。それが問題だろうか? –