HTML-генератор Python - PullRequest
       15

HTML-генератор Python

22 голосов
/ 10 октября 2009

Я ищу легко реализуемый генератор HTML для Python. Я нашел это

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

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

ТНХ

Ответы [ 9 ]

9 голосов
/ 10 октября 2009

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

Атрибуты с тем же именем, что и Ключевые слова Python (класс, тип) должны быть с большой буквы:

print DIV('bar', Class="title")  ==>  <DIV class="title">bar</DIV>
7 голосов
/ 28 августа 2014

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

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


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

Отказ от ответственности: я автор доминирования

7 голосов
/ 10 октября 2009

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

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

6 голосов
/ 10 октября 2009

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

5 голосов
/ 16 июля 2011

Это один очень простой генератор HTML, который я написал. Я использую это время сборки для генерации 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>
4 голосов
/ 02 ноября 2016

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

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

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

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

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

3 голосов
/ 27 октября 2009

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

1 голос
/ 09 августа 2018

Генерация HTML или любое текстовое поколение, jinja - мощный механизм шаблонов.

1 голос
/ 10 апреля 2010

Вас могут заинтересовать некоторые реализации Python HAML. HAML похож на сокращение от HTML и занимает всего несколько минут. Также есть версия CSS под названием SASS.

http://haml.hamptoncatlin.com/

" Есть ли реализация HAML для использования с Python и Django ", немного подробнее о Python и HAML.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...