10

Jinja2 を使用して Python で HTML テンプレートを作成しようとしています。「template.html」を含むテンプレート フォルダーがありますが、環境やパッケージ ローダーの処理方法がわかりません。

easy_python を使用して Jinja2 をインストールし、次のスクリプトを実行しました。

from jinja2 import Environment, PackageLoader
env = Environment(loader=PackageLoader('yourapplication', 'templates'))
template = env.get_template('mytemplate.html')
print template.render()

パッケージ/モジュールの定義方法がわからないため、次のエラーが発生します。シンプルなテンプレートを作成したいだけです。

  File "log_manipulationLL.py", line 291, in <module>
env = Environment(loader=PackageLoader('yourapplication', 'templates'))
 File "/usr/local/lib/python2.7/dist-packages/Jinja2-2.6-py2.7.egg/jinja2/loaders.py",    line 216, in __init__
provider = get_provider(package_name)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 213, in get_provider
__import__(moduleOrReq)
ImportError: No module named yourapplication
4

4 に答える 4

8

PackageLoader通常のドット構文を使用した実際の Python モジュールが必要です。たとえば、構造が次のようになっているとします。

myapp/
  __init__.py
  …
  templates/
    mytemplate.html

myappモジュール名として使用する必要があります。

于 2013-01-11T11:14:13.170 に答える
7

次のコードを使用してこの問題を解決しました。

 env = Environment(loader=PackageLoader('scriptname', 
                                        templatesPath))

このコードはファイルのどこにありますかscriptname.py

私の答えが関連しているかどうかはわかりませんが、おそらく誰かがこの答えを役に立つと思うかもしれないと思っていました. 私が間違っている場合はお知らせください。

于 2013-08-22T12:15:36.177 に答える