2012-01-25 9 views
5

Djangoのテンプレートエンジン/言語を使ってHTMLをコンパイルするアプリケーションを構築しています。しかし、アプリはDjangoで動作せず、すべての設定やものがありません。 私はそれを使用しようとすると、私は次のエラーを取得する:残りのDjangoテンプレートエンジンを使用しない

Traceback (most recent call last): 
    File "Send.py", line 33, in <module> 
    template = loader.get_template("email.html") 
    File "/Library/Python/2.7/site-packages/django/template/loader.py", line 157, in get_template 
    template, origin = find_template(template_name) 
    File "/Library/Python/2.7/site-packages/django/template/loader.py", line 138, in find_template 
    raise TemplateDoesNotExist(name) 
django.template.base.TemplateDoesNotExist: email.html 

私が使用していたコードは以下の通りです:

from django.template import loader, Context 
from django.conf import settings 

template = loader.get_template("email.html") 
rendered = template.render(data) 

テンプレートは、Pythonのファイルと同じディレクトリにあります。

+2

可能です[複製](http://stackoverflow.com/questions/98135/how-do-i-use-django-templates-without-the-rest-of-django) – reclosedev

+0

ここでは、Django > = 1.8 http://stackoverflow.com/a/34494931/817277 – Pramod

答えて

8

Djangoテンプレートの代わりにJinja2をスタンドアロンソリューションとして使用することをお勧めします。

+1

私はそれを2番目にしています。既にDjangoのテンプレートに精通している方は、Jinja2の使い方を知っています。彼らはほとんど同じですが、Jinjaはもっと良いです。 – GivP

+0

Jinja2 python3のサポートはまだ実験中です – niklas

3

ローダーがテンプレートを見つけるためには、 TEMPLATE_DIRSタプルのテンプレートがあるディレクトリをsettings.pyに置く必要があります。デフォルトでdjangoはtemplatesディレクトリをアプリケーション内で検索しますあなたはアプリケーションが登録されていない場合、 djangoはテンプレートを見つけることができません。

"djangoのような"テンプレートエンジンの後では、jinjaはdjangoの構文に非常に近く、完全に自己完結型であるため、直面しているように予期しない問題に遭遇することはありません。

6

これを使用しようとしましたか?

settings.configure(TEMPLATE_DIRS=('.',)) 

テンプレートは、Pythonのコードと同じディレクトリにあるので、ローダがテンプレートを探して、これは十分なはずです。

+0

誰かがこれをテストして動作するかどうか確認しましたか? –

関連する問題