いくつかの小さな(500行または600行のテンプレートコード)Djangoサイトがあり、それらをJinja2を使用するように移行したいと思います…しかし、それがどれだけの作業になるかについて、いくつかのアイデアを得たいと思います。それで、一般的に、小さなDjangoサイトをJinja2に移行するのにどれくらいの作業が必要ですか?そして、それは「それだけの価値がある」のでしょうか?
4 に答える
それは私自身の経験ですが、次の理由から、DjangoからJinja2に変換する価値があることがわかりました。
- Jinja2の設計と実装は、ソフトウェア開発者としてもテンプレート設計者としても、私にはより直感的に思えました。
- Jinja2はより拡張性があります(少なくとも、テンプレートエンジンを拡張しようとした方法では)。
- Jinja2は、ロジックコードの実行を許可するという点でより柔軟性があります(ただし、それはあなたに自分自身をぶら下げるのに十分なロープを与えます)。
- Jinja2は大幅に高速であると見なされています(ベンチマークは行っていませんが、使用するテストによっては常に議論の対象となります。いずれにしても、DBルックアップを実行する必要のあるクエリの合計待機時間にはほとんど関係ありません)。
Jinja2は、Djangoよりもはるかに役立つエラー出力を提供します(つまり、エラーが発生したテンプレートの行番号までトレースします)。編集:Dorのコメントによると、Djangoは、Jinja2のように、問題の行とコンテキストを示す有用なエラーメッセージを表示します。
Djangoのテンプレートエンジンに問題がなければ、Jinja2は比較的直感的であると感じるはずですが、おそらくもう少し洗練されていると思います(または、とにかく私にとってはそうです)。また、このCoffin
プロジェクトは、DjangoからJinja2に変換するときに、その使用とJinja2の拡張方法の両方で、よく書かれていて、かなり役立つことがわかりました。
そうは言っても、Djangoのテンプレートエンジンはしっかりしていて、ほとんどのタスクに対応できます。Djangoの次のリビジョンで改善されていると思います。かなりの数の熱心な開発者によって、その機能を追加するためにかなりの努力が払われています。その結果、近い将来、サポートされなくなる心配はありません。
繰り返しになりますが、それは私の経験であり、その価値があります。それがお役に立てば幸いです。
django-jinjaもあります。https://github.com/niwibe/django-jinja
新しくて素敵なプロジェクト。http://niwinz.github.io/django-jinja/latest/
これは、Djangoとのシンプルで邪魔にならないjinja2統合であると主張しています。
あなたが言ったことから、Jinja2に移行するのは面倒な価値がないかもしれません。Djangoテンプレートには、数学演算を実行するのに役立つフィルターがあります。
リスト操作に関して、あなたは正確に何について話しているのですか?テンプレートで特定のリスト操作をサポートする場合は、カスタムフィルターを記述します。
Django用の既存のサードパーティの数学フィルターもいくつかあります。
あなたがそれについて考えるならば、それはDjangoテンプレートがそれらの中にあまり多くの「プログラミング構造」を持っていないのは設計によるものです。HTMLテンプレートはそのようなものでなければなりません...