のpocoo.org の jinja API ドキュメント状態:
アプリケーションのテンプレートをロードするように Jinja2 を構成する最も簡単な方法は、おおよそ次のようになります。
from jinja2 import Environment, PackageLoader env = Environment(loader=PackageLoader('yourapplication', templates'))
これにより、デフォルト設定のテンプレート環境と、テンプレートを検索するローダーが作成されます。テンプレートフォルダ内のあなたの申請Python パッケージ。
結局のところ、これはそれほど簡単ではありません。テンプレートを含む Python パッケージを作成/インストールする必要があり、特にコードを配布するつもりがない場合は、多くの不必要な複雑さが生じます。
これに関して、次のような関連する質問を見つけましたが、回答は曖昧で満足のいくものではありませんでした。
パッケージ内のリソースとしてではなく、ファイルシステムから直接テンプレートをロードするにはどうすればよいですか?
ベストアンサー1
FileSystemLoader
の代わりにを使用しますPackageLoader
。テンプレートと同じディレクトリに python ファイルがあるとします。
./index.py
./template.html
この index.py はテンプレートを見つけてレンダリングします。
#!/usr/bin/python
import jinja2
templateLoader = jinja2.FileSystemLoader(searchpath="./")
templateEnv = jinja2.Environment(loader=templateLoader)
TEMPLATE_FILE = "template.html"
template = templateEnv.get_template(TEMPLATE_FILE)
outputText = template.render() # this is where to put args to the template renderer
print(outputText)
序文では、このPackageLoader
アプローチはデフォルトの「最も単純な」方法として紹介されているようですが、セクションすべての組み込みローダーについて説明します。