【flask】jinja2.exceptions.TemplateNotFoundの解消法

jinja2.exceptions.TemplateNotFound 解消法

flaskを使っているのですが、

jinja2.exceptions.TemplateNotFoundのエラー解消に時間がかかってしまったので、

解決法を記載しておきます。

エラー内容

しっかりと以下が表示されています。

* Serving Flask app "__init__" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!

しかし、Webブラウザで確認すると以下のエラーが返ってきています。

jinja2.exceptions.TemplateNotFound

チェック事項

いくつかのパターンを試してみて、

ミスしやすい箇所がなんとなく分かりました。

以下に該当していないかチェックしてみてください。

①スクリプトとtemplatesフォルダの階層が違う

いろいろと試してみたのですが、こちらは同じ階層においておかないと機能しないようです。

②フォルダ名を間違えている

templateではなく、templates です。

最後のsを必ず忘れないようにしてください。

③相対パスではない

スクリプトを書いていてうっかり、相対パスで書いてしまっていました。

以下が正常に動いた記述です。

@app.route('/')
def home():
    return render_template('home.html',posts=posts)

@app.route('/about')
def about():
    return render_template('about.html')

例えば、こんな書き方をしていないか確認してみてください。

jinja2.exceptions.TemplateNotFound 解消法

まとめ

非常に単純なミスなので、分かっていればすぐに解決できますが、

初めてだと解決するのに、1時間程度、格闘してしまいました。

jinja2.exceptions.TemplateNotFoundのエラーが出た際は、

ぜひ上記をチェックしてみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA