2017-11-03 11 views
-1

메신저로 프로젝트를위한 웹 사이트를 만들고 있지만이 오류가 계속 발생합니다.flask : jinja2.exceptions.TemplateNotFound 오류

jinja2.exceptions.TemplateNotFound 다음에

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

은 HTML 파일처럼 보인다 내 코드되지 않은 : 다음 home.html을

나는이 얻을 동일한 디렉토리. 파일을 읽고 파일을 열 수 있는지 확인하십시오.

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

또는 당신은 템플릿 HTML 파일이 templates라는 하위 디렉토리에 있습니다 확인해야이

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

나는 그것을 시도했지만 여전히 동일한 오류가 발생했습니다 – vegasnoob

+0

Paul Rooney의 답변이 정확합니다. 너의 dir 구조는 무엇입니까? –

2

과 같아야이

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

디렉토리 구조를 일을하려고합니다.

해당 위치에 있으면 작동합니다.

render_template에 대한 간단한 설명은 flask quickstart을 참조하십시오.

+0

내 html 파일은 모두 템플릿 폴더에 있으며 여전히 작동하지 않습니다. 다른 제안? – vegasnoob

+0

응용 프로그램이 패키지로 구성된 경우 템플릿은 모듈 루트 아래의'templates' 디렉토리에 있어야합니다. 그것이 문제일까요? –