テンプレートファイルは正しい場所に作成する必要があります。templatespythonモジュールの横のサブディレクトリ。
エラーはhome.html、templates/ディレクトリにファイルがないことを示しています。pythonモジュールと同じディレクトリにそのディレクトリを作成し、実際home.htmlにそのサブディレクトリにファイルを置いたことを確認してください。アプリがパッケージの場合、テンプレートフォルダーはパッケージ内に作成する必要があります。
myproject/
app.py
templates/
home.html
myproject/
mypackage/
__init__.py
templates/
home.html
または、テンプレートフォルダーに別の名前を付け、templatesそれをデフォルトに変更したくない場合は、Flaskにその別のディレクトリを使用するように指示できます。
app = Flask(__name__, template_folder='template') # still relative to module
EXPLAIN_TEMPLATE_LOADINGオプションをに設定することで、Flaskが特定のテンプレートを見つけようとした方法を説明するように要求できますTrue。ロードされたすべてのテンプレートについて、レベルでFlaskapp.loggerに記録されたレポートを取得しますINFO。
これは、検索が成功したときの様子です。この例では、foo/bar.htmlテンプレートがテンプレートを拡張しているbase.htmlため、2つの検索があります。
[2019-06-15 16:03:39,197] INFO in debughelpers: Locating template "foo/bar.html":
1: trying loader of application "flaskpackagename"
class: jinja2.loaders.FileSystemLoader
encoding: 'utf-8'
followlinks: False
searchpath:
- /.../project/flaskpackagename/templates
-> found ('/.../project/flaskpackagename/templates/foo/bar.html')
[2019-06-15 16:03:39,203] INFO in debughelpers: Locating template "base.html":
1: trying loader of application "flaskpackagename"
class: jinja2.loaders.FileSystemLoader
encoding: 'utf-8'
followlinks: False
searchpath:
- /.../project/flaskpackagename/templates
-> found ('/.../project/flaskpackagename/templates/base.html')
ブループリントは独自のテンプレートディレクトリも登録できますが、ブループリントを使用してより大きなプロジェクトを論理ユニット間で簡単に分割できるようにする場合は、これは必須ではありません。ブループリントごとに追加のパスを使用する場合でも、メインのFlaskアプリテンプレートディレクトリが常に最初に検索されます。
template_folderパスを設定してください。