django 확장 loader.get_template_from_string()과 템플릿 생성의 차이점은 무엇입니까?




django 페이지 이동 (2)

템플릿 코드에 대한 Django 문서는 Template() 사용하여 설명한 첫 번째 방법을 사용하여 설명합니다.

get_template_from_string 언급하지 않으며 문서의 다른 곳에서도 마찬가지입니다.

따라서 첫 번째 방법의 사용법에 크게 의지 할 것입니다. 다른 방법은 문서화되지 않은 기능이므로 미래에 변경 될 가능성이 더 높기 때문일 수 있습니다.

나는 사용자가 자신의 템플릿을 저장하는 방법을 연구하고 있으며 템플릿을 즉시 만들어야한다는 것을 알고 있습니다. 예 :

>>> 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>

두 가지 방법의 차이점은 무엇입니까? 한 가지 방법이 더 파이썬 적이거나 다른쪽에 선호됩니까?


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에 있습니다.







django-templates