2012-11-14 1 views
1

나는 사용자가 자신의 템플릿을 저장하는 수단을 개발하고 있으며 템플릿을 즉시 만들어야한다는 것을 알고 있습니다. 예를 들면 : I로드 템플릿 문자열에 대해 물었을 때loader.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> 

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

답변

3

Django documentation for the templating code 당신이 설명한 첫 번째 방법을 사용하여 설명합니다.

여기에는 get_template_from_string은 언급되지 않았으며 문서의 다른 곳에서도 마찬가지입니다.

그래서 나는 문서화되지 않은 함수이기 때문에 다른 하나는 앞으로 변경 될 가능성이 더 높으므로 첫 번째 방법의 사용법에 크게 의지 할 것입니다.

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) 

소스 코드는 여기에 있습니다 : Template()를 사용하여 : https://github.com/django/django/blob/master/django/template/loader.py

+0

소스가 템플릿을 반환한다는 것을 아는 것이 도움이되지만, 왜 이렇게되는지에 대한 설명이있는 답변을 찾고있었습니다. / – NT3RP

관련 문제