python django for문 - 장고 나머지 템플릿없이 장고 템플릿을 어떻게 사용합니까?





6 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'
post 처리 render

내 (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.



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




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

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

manage.py generatereports --format=html

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







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




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




Related