web-dev-qa-db-ja.com

python htmlジェネレータ

簡単に実装できるpython用のhtmlジェネレーターを探しています。これを見つけた

http://www.decalage.info/python/html

しかし、テーブルにCSS要素(ID、クラス)を追加する方法はありません。

どうも

23
Meloun

テンプレートではなくプログラムによる生成が必要な場合は、Karrigellの HTMLTags モジュールが1つの可能性です。たとえば、 class属性(Pythonでは予約語になります)、最初の大文字を大文字にする、つまり、先ほど指定したドキュメントのURLを引用するトリック:

Pythonキーワード(クラス、タイプ)と同じ名前の属性は大文字にする必要があります:

print DIV('bar', Class="title")  ==>  <DIV class="title">bar</DIV>
9
Alex Martelli

Dominate は、タグを簡単に作成できるHTML生成ライブラリです。 dominateでは、python予約語の前にアンダースコアが付いているため、次のようになります。

from dominate.tags import *
t = div(table(_id="the_table"), _class="tbl")
print(t)


<div class="tbl">
  <table id="the_table"></table>
</div>

免責事項:私は支配の著者です

10
Knio

HTMLの生成は通常、Pythonで利用できる無限の量のHTMLテンプレート言語の1つで行われます。個人的には Templess が好きですが、おそらく Genshi が最も人気があります。それらは無限にあり、不完全である可能性が高い list があります。

それ以外の場合は、 lxml を使用することをお勧めします。この場合、よりプログラム的にXML風に生成できます。メリットがわかりませんが。

7
Lennart Regebro

ロビンフリードリッヒによる由緒あるHTMLGenがあります。これは見つけるのは難しいですが、まだ利用できます here (2001年日付ですが、HTMLはそれ以来それほど変わっていません;-)。 xist もあります。もちろん、最近のHTMLの生成は、レナートが指摘しているように、一般に Jinja または Mako などのテンプレートシステムを使用して行う方が適切です。

6
Vinay Sajip

これは私が書いた非常にシンプルなHTMLジェネレーターの1つです。私はそれをビルド時に使用してHTMLを生成します。ランタイムにhtmlページを生成している場合、より良いオプションが利用可能です

こちらがリンクです

http://pypi.python.org/pypi/sphc

そして簡単な例

>> import sphw
>> tf = sphw.TagFactory()
>>> div = tf.DIV("Some Text here.", Class='content', id='foo')
>>> print(div)

<DIV Class="content", id="foo">Some Text here.</DIV>
5
Shekhar

実際には、IDやクラスなどの属性をHTML.pyのオブジェクトに追加できます( http://www.decalage.info/python/html )。

attribsは、Table、TableRow、およびTableCellクラスのオプションのパラメーターです。これは、設定する追加の属性の辞書です。たとえば、次のコードはテーブルのIDとクラスを設定します。

import HTML
table_data = [
        ['Last name',   'First name',   'Age'],
        ['Smith',       'John',         30],
        ['Carpenter',   'Jack',         47],
        ['Johnson',     'Paul',         62],
    ]
htmlcode = HTML.table(table_data, 
    attribs={'id':'table1', 'class':'myclass'})
print htmlcode

同じパラメーターをTableRowオブジェクトとTableCellオブジェクトで使用して、行とセルをフォーマットできます。列にはまだ存在しませんが、必要に応じて簡単に実装できるはずです。

4
decalage

さて、ここに別のhtmlジェネレーターがあります。または、コンパイラーとして考えたいと思います。

https://pypi.python.org/pypi/python-html-compiler

これは、タグと属性の定義に使用できる基本クラスのセットです。したがって、タグクラスには属性と子があります。子はそれ自体が属性や子などを持つタグクラスです。また、ルートクラスで始まるパラメータを設定して、さまざまなブランチを処理することもできます。

これにより、必要なすべてのタグクラスを定義できるため、カスタマイズされたクラスを作成し、必要なタグや属性を実装できます。

ちょうどこれで始めたので、誰かがテストしたい場合:)

4
MarcNealer

HTML生成または任意のテキスト生成、 jinja は強力なテンプレートエンジンです。

2
Prabhat Ranjan

Python HAML実装のいくつかに興味があるかもしれません。HAMLはHTMLの短縮形のようなもので、数分で習得できます。SASSと呼ばれるCSSバージョンもあります。

http://haml.hamptoncatlin.com/

" PythonおよびDjango "で使用するHAML実装はありますかPythonおよびHAMLについてもう少し説明します。

Rubyでプログラミングしているときは、できるだけHAMLを使用しています。また、脚注として、Nice MVC Mojoliciousで動作するPerl用のモジュールを取得する作業もいくつかあります。

http://metacpan.org/pod/Text::Haml

1
the Tin Man