2009-09-06 8 views
7

저는 Mako와 Genshi 사이에서 선택할 수 있지만 템플릿 솔루션을 고려해 왔습니다. 나는 Genshi에서 약간의 추악한 템플릿을 발견했습니다. 그래서 나는 Mako쪽으로 더 이동하고 있습니다. 마코는 파이썬 코드를 포함 수 있다는 사실에 대해 너무 좋은 것 :Mako를 템플릿으로 사용해야합니까?

궁금해하는 갔어요? 평균 조는 얼마나 편리합니까?

임베디드 파이썬 코드없이 충분 그냥하는 주형하지 않을까요?

답변

18

mako homepage에서 지적했듯이 Mako의 장점은 매우 명확합니다. 구문과 기능 측면에서 보면 Python을 사용하면 누구나 쉽게 익숙해 질 수 있습니다.

Genshi는 오류 메시지의 명확성을 위해 사전에 파이썬 코드 생성 (즉, FAQ에 따라)과 파이썬에 대한 "팔 길이"접근 방식 대신 "해석"을 선택합니다 (예 : 선택기에 xpath 사용, xinclude 상속 대신에, 등등) 그래서 파이썬을 모르는 사람들에게는 더 자연스럽지 만 XML에 대해서는 매우 유능합니다.

"잠재 고객"은 무엇입니까? 파이썬 프로그래머라면, 나는 Mako (속도와 친숙 함)를 제안한다. 파이썬에 익숙하지 않은 XML 전문가라면 Genshi가 더 적합 할 것입니다 ("Python에서 팔 길이"접근 방식과 XML 문화에 더 가까운 일치).

당신은 "평균 조"를 언급하지만, 조 파이썬을 모르는 및 XPath는 그에게 깊은 어두운 비밀이다; 그게 정말로 당신의 청중이라면 장고와 같은 다른 템플리트 시스템이 실제로 더 잘 어울릴 것입니다 (문제를 피하는 데 도움이됩니다 ;-).

2

이것은 약간의 종교적 문제로 보입니다. 장고 템플릿은 어려운 라인을 가지고 있습니다 : 템플릿에 코드가 없습니다. 그들은 코드를 작성하는 사람들과 페이지를 만드는 사람들 사이에 명확한 분리가있는 상점에서 사용되는 시스템으로서의 역사로 인해 이것을합니다. 다른 사람들 (아마 당신)은 그렇게 명확한 구별을하지 않으며, 레이아웃과 로직 사이에보다 유연한 라인을 갖는 것이 더 편할 것입니다.

정말 맛이 나옵니다.

0

정말 작업을 완수 할 수있는 최후의 수단 않는 한 당신은 템플릿 내에서 파이썬 코드를 삽입하지 않도록 자신을 훈련 할 수있다. Django의 템플릿과 비슷한 문제에 직면 해 있습니다. 콘텐츠를 표시하기 위해 심각한 CSS 체조를해야합니다. 템플릿에 파이썬 코드를 사용할 수 있었다면 더 좋았을 것입니다.

+0

다행히, 그것은, 장고 마코를 사용하는 것은 매우 쉽다 (http://code.google.com/p/django-mako/ 다른 장소들) –

2

Genshi가 잉태 (읽기 : 바이어스 최적화) (이 텍스트 문서의 종류를 생성하기위한 지원을 제공하지 않더라도)의 XML 문서의 생성을 위해. Mako 및 Django 템플릿은 일반 텍스트 템플릿 시스템으로 인식됩니다. Evoque도하지만, 그것은 단지 허용하도록 디자인 선택하게 한 근본적인 차이와 파이썬 표현 템플릿 즉 어떤 파이썬에게 .

이것의 중요한 결과 중 하나는 Evoque가 샌드 박스에서 템플릿 평가를 실행할 수 있다는 것입니다. 즉, 신뢰할 수없는 사용자에게 템플릿의 소스 코드에 대한 쓰기 권한을 안전하게 부여 할 수 있습니다. 템플릿 엔진에서는 사실상 불가능한 기능입니다. 또한 파이썬 문의 임베딩을 허용합니다. 직접적인 기능 비교에서 어떤을 잃지 않으면 서 아, 그리고, 이보 크가 마코 것보다 실제로 더 빠른 경우에, 또한하는 주형하지 그냥 임베디드 파이썬 코드없이 충분

15

파이썬 3에서 실행?

템플릿 언어에 본질적으로 스크립팅 언어 인 충분한 논리 기능이있는 경우에만. 어느 시점에서, 파이썬을 사용했을 수도 있습니다.

더 많은 관련 사이트는 종종 다른 장소/페이지 및 재귀 나무에서 반복 섹션 같은 복잡한 프리젠 테이션 로직이 아닌 사소한 템플릿 구조가 필요합니다. 템플리트에있는 코드가 나쁜 것 "이라는 종교적 입장을 취하기 때문에 템플릿 언어가 등 뒤에서 손을 묶는 경우 재미가 없습니다.

그런 다음 당신은 당신이 시작했던 것보다 표시 및 응용 프로그램 논리의 나쁜 혼합이다 파이썬 비즈니스 로직에서 프리젠 테이션 도우미 함수를 작성 끝낸다. 감정적으로 사용하는 것을 당신이 신뢰하지 않기 때문에 당신을 멀리하는 언어는 절름발이입니다. 당신이 그렇게 경사 인 경우