2009-10-10 6 views
17

Я ищу легко реализованный генератор html для python. Я нашел этотpython html generator

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

но нет возможности добавить элементы css (id, class) для таблицы.

ТНХ

ответ

7

Если вы хотите программную генерацию, а не шаблон, модуль Karrigell's HTMLTags - одна из возможностей; он может включать, например, атрибут class (который будет зарезервированным словом в Python) с помощью трюка в верхнем регистре его инициал, то есть, со ссылкой на ЕЕ URL Я просто дал:

атрибутов с тем же именем в качестве ключевых слов Python (класса, типа) должны быть капитализируются:

print DIV('bar', Class="title") ==> <DIV class="title">bar</DIV> 
5

HTML поколения обычно делается с одной из бесконечных сумм языков шаблонных HTML, доступных для Python. Лично мне нравится Templess, но Genshi, вероятно, самый популярный. Их бесконечное количество, есть list, который, скорее всего, будет неполным.

В противном случае вы можете использовать lxml, где вы можете сгенерировать его более программным способом XML-ish. Хотя я с трудом вижу эту выгоду.

+0

Как и в сторону: Genshi является шаблонный движок, используемый Trac. – retracile

5

Там же почтенный HTMLGen Робин Фридриха, который трудно найти, но по-прежнему доступны here (датированный 2001, но HTML не сильно изменился с тех пор ;-). Также есть xist. Конечно, в настоящее время генерация HTML, как указывает Леннарт, обычно лучше делать с использованием систем шаблонов, таких как Jinja или Mako.

+0

В настоящее время? Python templating существует по крайней мере с DTML, 1997. :) ZPT, который лучше с 2001 года. :) [Just nitpicking] –

2

На самом деле вы можете добавить любые атрибуты, такие как id и class, к объектам в HTML.py (http://www.decalage.info/python/html).

атрибуты - необязательный параметр классов Table, TableRow и TableCell. Это словарь дополнительных атрибутов, которые вы хотите установить. Например, следующий код задает идентификатор и класс для таблицы:

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 объектов строк и ячеек формата. Он еще не существует для столбцов, но при необходимости его легко реализовать.

0

Возможно, вас заинтересует некоторые реализации Python HAML. HAML похож на HTML-стенографию и занимает всего несколько минут, чтобы узнать. Также есть версия CSS SASS.

http://haml.hamptoncatlin.com/

"Is there a HAML implementation for use with Python and Django" говорит о Python и Haml немного больше.

Я использую HAML как можно больше, когда программирую в Ruby.И, как примечание, там также некоторые рабочие получают модули для Perl, которые работают с хорошей MVC Mojolicious:

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

4

Это один ультра-простой HTML генератор я написал. Я использую его build-time для генерации 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> 
3

Dominate является библиотека генерации HTML, который позволяет легко создавать теги. В властвуй, питон зарезервированные слова начинаются с подчеркивания, поэтому он будет выглядеть следующим образом:

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


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

Отказ от ответственности: я являюсь автором властвуй

3

Хорошо, вот еще один HTML-генератор, или я предпочитаю думать его как компилятора.

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

Это набор базовых классов, которые могут быть использованы для определения тегов и атрибутов. Таким образом, класс тега имеет атрибуты и дочерние элементы. Дети сами являются тегами, которые имеют атрибуты и дети и т. Д. Также вы можете установить параметры, которые начинаются с вашего корневого класса и обрабатывать различные ветви.

Это позволит вам определить все классы тегов, которые вы хотите, чтобы создать настраиваемые классы и реализовать любые теги или атрибуты, которые вы хотите.

Только начал на этом, так что если кто-то хочет проверить :)

Смежные вопросы