[python] 장고 나머지 템플릿없이 장고 템플릿을 어떻게 사용합니까?


5 Answers

Jinja2 syntax 은 Django syntax 과 거의 다른 점이 많으며 템플릿을 바이트 코드 (FAST!)로 컴파일하는 훨씬 더 강력한 템플릿 엔진을 사용할 수 있습니다.

나는 장고 자체를 포함하여 templating을 위해 그것을 사용한다. 그리고 그것은 매우 좋다. 원하는 기능 중 일부가 누락 되어도 쉽게 내선 번호를 쓸 수 있습니다.

다음은 코드 생성에 대한 몇 가지 데모입니다.

>>> import jinja2
>>> print jinja2.Environment().compile('{% for row in data %}{{ row.name | upper }}{% endfor %}', raw=True) 
from __future__ import division
from jinja2.runtime import LoopContext, Context, TemplateReference, Macro, Markup, TemplateRuntimeError, missing, concat, escape, markup_join, unicode_join
name = None

def root(context, environment=environment):
    l_data = context.resolve('data')
    t_1 = environment.filters['upper']
    if 0: yield None
    for l_row in l_data:
        if 0: yield None
        yield unicode(t_1(environment.getattr(l_row, 'name')))

blocks = {}
debug_info = '1=9'
Question

내 (Python) 코드에서 Django 템플릿 엔진을 사용하고 싶지만 장고 기반 웹 사이트를 구축하지는 않습니다. settings.py 파일 (및 다른 것들)을 사용하지 않고 DJANGO_SETTINGS_MODULE 환경 변수를 설정하지 않고 어떻게 사용합니까?

다음 코드를 실행하면 :

>>> import django.template
>>> from django.template import Template, Context
>>> t = Template('My name is {{ my_name }}.')

나는 얻다:

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.



Google AppEngine 은 Django 템플릿 엔진을 사용합니다. 어떻게 사용했는지 살펴 보았습니까? 당신은 아마도 그것을 사용할 수있을 것입니다.







나는 Jinja 도 말할 것입니다. 그것은 확실히 장고 템플릿 엔진 보다 강력 하고 독립적 입니다.

이것이 기존 Django 응용 프로그램의 외부 플러그 인 경우 , 사용자 정의 명령을 작성 하고 프로젝트 환경에서 템플리트 엔진을 사용할 수 있습니다. 이것 같이;

manage.py generatereports --format=html

하지만 나는 Jinja 대신 Django Templating Engine을 사용하는 것이 가치 있다고 생각하지 않습니다.




나는 또한 jinja2를 추천 할 것이다. djangojinja2 에 대한 훌륭한 기사 가 있습니다.이 기사에서는 왜 나중에 prefere해야하는지에 대한 세부 정보를 제공합니다.




위의 진술을 반복합니다. Jinja 2는 일반적인 용도로 사용할 수있는 Django 템플릿의 아주 훌륭한 수퍼 셋입니다. 나는 장고 템플릿을 settings.py에 조금 덜 결합하려고 노력하고 있다고 생각하지만 진자는 당신을 위해서 잘해야한다.






Related