web-dev-qa-db-ja.com

Django:Jinja2に切り替えますか?

いくつかの小さな(500または600行のテンプレートコード)Djangoサイトがあり、それらをJinja2を使用するように移行したいと思います...しかし、いくつかのアイデアを取得したいです。それで、一般的に、小さなDjangoサイトをJinja2に移行するのにどれだけの作業が必要ですか?それは「価値がある」のでしょうか?

55
David Wolever

私自身の経験ではありますが、Django=からJinja2への変換は次の理由から価値があることがわかりました。

  1. Jinja2の設計と実装は、ソフトウェア開発者としてもテンプレートデザイナーとしても、より直感的に思えました。
  2. Jinja2はより拡張性があります(少なくとも、テンプレートエンジンを拡張しようとしてきた方法では)。
  3. Jinja2は、ロジックコードの実行を許可するという点でより柔軟性があります(ただし、自分でハングアップするのに十分なロープを提供します)。
  4. Jinja2は非常に高速であると見なされています(ベンチマークは行っていませんが、これは使用するテストに応じて常に議論の対象となります。いずれにしても、DBルックアップを実行するクエリの合計待機時間にはほとんど関係ありません)。
  5. Jinja2は、Django(つまり、エラーが発生したテンプレートの行番号へのトレース)よりもはるかに役立つエラー出力を提供します。 Edit:Dorのコメントによると、Djangoは問題の行とコンテキストを示す有用なエラーメッセージを提供し、 Jinja2によく似ています。

Djangoのテンプレートエンジンに問題がなければ、Jinja2のほうがもう少し洗練されていれば(あるいは、私にとってもそうだったとしても)、比較的直感的に感じるはずです。同様に、 Coffin プロジェクトはよく書かれており、Django=からJinja2に変換する際に-使用と例の両方で合理的に役立つJinja2を拡張する方法の。

そうは言っても、Djangoのテンプレートエンジンは堅牢で、ほとんどのタスクに十分対応できます。 Djangoの次のリビジョンで改善されていると信じており、かなりの数の熱心な開発者がその機能を追加するためにかなりの努力をしています。その結果、中期的に近い将来にサポートされなくなる心配はありません。

繰り返しますが、それは私の経験であり、価値があるものです。それが役立つことを願っています。

52
Brian M. Hunt

Django-jinjaもあります。 https://github.com/niwibe/Django-jinja

新しくて素敵なプロジェクト。 http://niwibe.github.io/Django-jinja/

Djangoとのシンプルで邪魔にならないjinja2統合であると主張しています。

4
Arthur Alvim

あなたが言ったことから、Jinja2に移行するのは面倒なことではないかもしれません。 Django数学演算を行うのに役立つテンプレートにフィルターがあります。

リスト操作に関して、正確に何について話しているのですか?テンプレートで特定のリスト操作をサポートする場合は、 カスタムフィルター を記述します。

また、既存のサードパーティ Djangoの数学フィルター もあります。

考えてみると、Djangoテンプレートには「プログラミング構造」があまり含まれていません。HTMLテンプレートはそのようなものでなければなりません...

3

DjangoでJinjaを簡単な統合手順とDjango-

  1. Co
  2. Chouwa

Django Django Admin。 Djangoデフォルトのテンプレートシステムは、Adminなどの内部アプリで使用されます。

2
Ravi Kumar