2

Python 用の成熟した、使いやすく、強力な、スタンドアロンの「美しい」テンプレート システム/言語を探しています。私は主に、HTML ソースから (静的) HTML を生成することに関心があります (したがって、Markdown/RST/Textile は関係ありません)。

さまざまな選択肢があるようで (Python wiki には非常に長いリストがあります)、選択が非常に困難になります。以下は、私が聞いたり使用したりした言語を、個人的な親しみのレベルでランク付けしたものです。

興味があれば、気軽にこれをコミュニティ wiki にしてください。

ジャンゴ

長所:

  • Django を使用したことがある場合は、使い慣れた簡単な構文。
  • Django の素晴らしいドキュメント。
  • ロジックからの大幅な分離。
  • 積極的にサポートおよび保守されています。

短所:

  • スタンドアロンモードで使用するようには作られていません。何も持っていない場合、テンプレートタグライブラリのロードが機能するかどうかさえわかりませんINSTALLED_APPS
  • Django プロジェクト全体のスケジュールに縛られているため、スタンドアロンでの使用はあいまいになります。
  • おそらく過度に非 Pythonic な構文です。

ジンジャ2

長所:

  • 構文は基本的に Django++ です
  • 構成可能な構文
  • 手入れの行き届いた
  • 良いドキュメンテーション

げんし

  • XHTML:っぽい構文 (良いか悪いか?)
  • したがって、XML ベースの出力を生成することに縛られていますか?
  • テンプレートで Python を直接使用可能 ( <?python ... ?>)

マコ

長所:

  • Reddit.com などのサイトにデプロイされた Pylons に支えられています

短所:

  • 構文は (一目見ただけで) 少し不均一に思えます。<%%、および$?

検討する価値があると私が考えるいくつかのことも次のとおりです。

  • Python 3 との互換性
  • エディターのサポート (たとえば、維持されている TextMate バンドルはありますか?)

私は、醜いウェブサイトを持っていることを除いて、以下について何も知らないことを認めます.

チーター

文字列テンプレート

4

1 に答える 1

4

申し訳ありませんが、コメントを残す担当者がまだいないので、これを回答として残します。

私はdjangoとmakoしか使っていません。これら 2 つのテンプレート言語の主な違いは、Django がテンプレート デザイナーを本当に信頼できないかのように設計されていることです。これは、テンプレートで使用できるコードを制限し、テンプレート内で Python コードを使用することを許可していないことからわかります。(Python コードがテンプレートに属しているかどうかについての議論の合図)。私のプロジェクトでは、私はプログラマーとデザイナーの両方だったので、Django が私の邪魔をしました。

Mako は単純に、いくつかのヘルパー関数を使用して、テンプレートをテキストのブロックと Python コードに解析します。これは、Mako のコードがはるかに小さく、すでに Python に精通していると仮定すると、Django よりもはるかに速く習得できるように思われることを意味します。

例: django で変数を割り当てる唯一の方法は、with ブロックを使用することでした。

{% with total=business.employees.count %}
    {{ total }} 
{% endwith %}

(business.employees.count は実際には関数 (business.employees.count()) であることに注意してください)。

一方、Mako での同等のコードは次のようになります。

<% total = business.employees.count() %>
${total}

Django 達人: お気軽に訂正してください。私の経験は限られていますが、これが私が Django から Mako に切り替えた理由です。

構文のアイデアを知りたいだけの場合、これはさまざまなテンプレートシステムのかなりまともな基本比較のようです: http://catherinedevlin.pythoneers.com/cookoff.html

于 2011-02-27T17:10:08.767 に答える