コード生成を容易にする最高のPythonテンプレートライブラリ[終了]

StackOverflow https://stackoverflow.com/questions/612788

質問

翌日(または1年)にすべての記事を読んでいる代わりに、テンプレートエンジンについての詳細な提案がありますか?

役に立ちましたか?

解決

最良の提案:すべて試してください。長くはかかりません。

お気に入り: Jinja2 (1マイルごと)

適切な構文があり、エラーを追跡でき、サンドボックス化できます。

他のヒント

コード生成を実行している場合、 Cog が便利です-コード生成専用、一般に適用可能なテンプレート言語ではありません。

最も重要な懸念は、テンプレートが必要とする構文で生活できるかどうかです。 2番目と3番目(アプリケーションのニーズによって異なります)は、配布の速度と容易さです。

それらすべてを見てみましたが、私が耐えることができた唯一の構文は Jinja 。 Jinjaには多くのPythonコンストラクトをサポートできるという利点があるため、特別なタグをコーディングせずに、必要に応じてテンプレートに機能のスニペットを簡単に追加できます。他のテンプレートシステムでタグを必要とするもののほとんどは、Jinjaのマクロによって処理されます。

もちろん、簡単で素早いものを探しているなら、 PythonテンプレートAPI

更新:子供は Genshi によって成功したようです。

Kidを使用しましたが、これは古いシステムの1つだと思います。私はそれが非常にしっかりしていて、安定していて、信頼できるとわかりました。タグベースであるため、XML / HTMLでの作業に適しています。テンプレート関数は、特別なブロックではなく、HTML属性として実行されるという点で興味深いものです。つまり、{%...%}です。ただし、その一部の側面(特に「インクルード」の方法)はかなり面倒です。また、積極的に開発されることも、まったく開発されることもないようです。

しばらくの間存在し、非常に安定したものが必要な場合は、見てみる価値があります。もっと新しいものが欲しいなら、私は源氏と神社の両方について良いことを聞いたことがあります。

Clearsilver が好きです。複数の異なる言語で動作し、データとプレゼンテーションの分離を厳密に強制するからです。以前はCheetahを使用していましたが、かなりいいのですが、ときどきPythonの制限された形式のように見えるもので作業するのは好きではありませんでした。

X [HT] MLを使用している場合、整形式のテンプレートを残すことができるタグベースのテンプレートシステムの1つは良い動きです。 PXTL 、FWIWを使用しています。 (他の形式を生成することもできますが、XMLまたはHTMLを強調しない場合は賢明な選択ではありません。)

ビジネスロジックとプレゼンテーションを分離するのに役立つと主張するテンプレートシステムには強い嫌悪感があります。式を独自のリトル言語に制限することにより。彼らは“ presentation logic”のようなものがあることを理解していないようで、それを実行するためにPythonのような本物の言語が必要になるほど複雑になることがあります。ビジネスロジックを使用して、プレゼンテーションロジックをアプリにキックアウトすることは、勝ちではありません。避けてください!

(Javaがテンプレートライブラリで使用するには面倒すぎるため、JSPの‘ EL’では限定式の個別のミニ言語アプローチが意味をなしました。しかし、Pythonがあります!テンプレート内の表現はそのままで、機能を切り捨てて、ユーザーに別の新しい言語を学習させることは何も得られません。)

非常に軽量オプションが必要な場合は、templetteを試してください。これは、単一モジュールの80行のコードのようなものです。 こちらおよびこちら(ブログで公開されました)。機能が十分であれば、賢明で非常に焦点の合ったソリューションだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top