1

私はユーザーが独自のテンプレートを保存する手段に取り組んできましたが、その場でテンプレートを作成する必要があることはわかっています。例えば:

>>> from django.template import Template
>>> Template("Testing {{test}}")
<django.template.base.Template object at 0x10c58f990>

ただし、テンプレート文字列の読み込みについて尋ねたところ、次を使用するように勧められましたget_template_from_string

>>> from django.template import loader
>>> loader.get_template_from_string("Testing {{test}}")
<django.template.base.Template object at 0x10c8b5450>

2つの方法の違いは何ですか? 1つの方法はよりpythonicですか、それとも他の方法よりも優先されますか?

4

2 に答える 2

3

テンプレート コードのDjango ドキュメントでは、最初に説明した方法である using の使用について説明していますTemplate()

については言及されておらずget_template_from_string、ドキュメントの他の場所でも言及されていません。

したがって、最初の方法の使用法に大きく依存します。これは、文書化されていない機能であるため、他の方法が将来変更される可能性が高いためです。

于 2012-11-14T18:09:58.967 に答える
2

現在のバージョンの Django では、get_template_from_string は、同じ方法で新しいテンプレートをインスタンス化するだけです。

def get_template_from_string(source, origin=None, name=None):
"""
Returns a compiled Template object for the given template code,
handling template inheritance recursively.
"""
    return Template(source, origin, name)

ソースコードはこちら: https://github.com/django/django/blob/master/django/template/loader.py

于 2012-11-14T16:53:46.613 に答える