Pythonで簡単なHTMLをすばやく作成する最も簡単な方法は何ですか?これまでに見つけたのは、必要なものよりもはるかに重いと思われるAPIを使用したHTML生成用の複雑なテンプレートシステムまたはクラスだけです。
文字列をくっつけるだけで自分でできるのですが、少し時間を節約できるライブラリがあるのではないかと思いました。
編集-私はJinja2テンプレートシステムを詳しく調べることにしました。将来のある時点で役立つ可能性があり、私が思っていたほど理解するのに時間がかかるようには見えません。
Pythonで簡単なHTMLをすばやく作成する最も簡単な方法は何ですか?これまでに見つけたのは、必要なものよりもはるかに重いと思われるAPIを使用したHTML生成用の複雑なテンプレートシステムまたはクラスだけです。
文字列をくっつけるだけで自分でできるのですが、少し時間を節約できるライブラリがあるのではないかと思いました。
編集-私はJinja2テンプレートシステムを詳しく調べることにしました。将来のある時点で役立つ可能性があり、私が思っていたほど理解するのに時間がかかるようには見えません。
quixoteは古風ですが、それでも魅力的なフレームワークです。基本的に「HTMLをPythonに埋め込む」(すべての一般的なテンプレートシステムのようにその逆ではありません)。
概要からの1つの簡単な例:
def format_row [html] (head, value):
"<tr valign=top align=left>\n"
" <th align=left>%s</th>\n" % head
" <td>%s</td>\n" % value
"</tr>\n"
Python本体では、これらの文字列の最初はdocstringであり、他の文字列は無視され、[html]一部は構文エラーになります。ではQuixote、[html]この関数をPython固有ではなく、「PTL」(Pythonテンプレート言語)としてマークします。このような関数を持つモジュールに使用するファイル拡張子はですが、 Pythonから.ptl引き続き使用でき、これらの文字列が出力されます。import
現代のPythonテンプレートアプローチよりも優先して採用したいとQuixoteは思わないが、それは興味深い読み物、IMHOに役立つ。
さらに同様の線に沿って、特に(HTML自体ではなく、XMLの生成に適していますが) nevowがあります。stan、正規の例は...:
>>> from nevow import flat, stan
>>> html = stan.Tag('html')
>>> p = stan.Tag('p')
>>> someStan = html[ p(style='font-family: Verdana;')[ "Hello, ", "world!" ] ]
>>> flat.flatten(someStan)
'<html><p style="font-family: Verdana;">Hello, world!</p></html>'
タグを正しく閉じることを心配する必要がないので、一種の「さらにクール」です;-)。
ただし、最終的には、最近ではjinja2やmakoなどのテンプレートシステムが一般的に好まれています。主な実用的な理由は、プレゼンテーションロジック(テンプレート内)を他のレイヤー(Pythonコード固有)から分離することです。 「Python内にHTML/XMLを埋め込む」アプローチでは、私は推測します。
マークアップモジュールをご覧ください:http://markup.sourceforge.net/
編集:これは非常によく似た別のモジュールです:http ://www.decalage.info/en/python/html
Pythonのstring.Templateはあなたが望むことをするかもしれません。そして、それは組み込みです。
http://docs.python.org/library/string.html#template-strings
さらなる定義や例がなければ、「はるかに重いように見えるAPI」を理解することはできません。
基本的なベアボーンを探しているなら、古代のHTMLgenで十分です。それ以外の場合は、テンプレートエンジンを使用します。