2009-10-10 11 views
17

Estoy buscando un generador html de fácil implementación para python. Me pareció que éste erapython html generator

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

pero no hay manera de añadir elementos CSS (ID), clase de mesa.

THX

Respuesta

7

Si desea generación programática en lugar de plantillas, el módulo HTMLTags de Karrigell es una posibilidad; puede incluir, p. el atributo class (lo que sería una palabra reservada en Python) por el truco de uppercasing su posición inicial, es decir, citando la URL doc me di por:

atributos con el mismo nombre como palabras clave Python (clase, tipo) debe ser capitalizado :

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

HTML Generación se hace generalmente con una de las cantidades infinitas de idiomas de plantillas HTML disponibles para Python. Personalmente me gusta Templess, pero Genshi es probablemente el más popular. Hay cantidades infinitas de ellos, hay un list que es altamente probable que esté incompleto.

De lo contrario, es posible que desee utilizar lxml, donde puede generarlo de forma más programáticamente XML-ish. Aunque me cuesta ver el beneficio.

+0

Como acotación al margen: Genshi es el motor de plantillas utilizado por Trac. – retracile

5

Ahí está el HTMLGen venerado por Robin Friedrich, que es difícil de encontrar, pero todavía disponibles here (fechado en 2001, pero HTML no ha cambiado mucho desde entonces ;-). También hay xist. Por supuesto, hoy en día la generación HTML, como señala Lennart, generalmente se hace mejor usando sistemas de plantillas como Jinja o Mako.

+0

¿Hoy en día? La creación de plantillas de Python ha existido desde al menos DTML, 1997. :) ZPT, que es mejor desde 2001. :) [Solo estoy aprendiendo] –

2

En realidad, puede agregar cualquier atributo como id y class a los objetos en HTML.py (http://www.decalage.info/python/html).

attribs es un parámetro opcional de las clases Table, TableRow y TableCell. Es un diccionario de atributos adicionales que te gustaría establecer. Por ejemplo, el código siguiente establece Identificación y clase para una tabla:

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 

el mismo parámetro se puede utilizar con objetos TableRow y TableCell a las filas y las células de formato. Todavía no existe para columnas, pero debería ser fácil de implementar si es necesario.

0

Puede que le interesen algunas de las implementaciones de Python HAML. HAML es como una abreviatura HTML y solo toma unos minutos aprender. También hay una versión CSS llamada SASS.

http://haml.hamptoncatlin.com/

"Is there a HAML implementation for use with Python and Django" habla de Python y HAML un poco más.

Estoy usando HAML tanto como sea posible cuando estoy programando en Ruby.Y, como nota al pie, también hay habido algunos módulos de trabajo para conseguir Perl, que trabajan con el buen MVC Mojolicious:

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

4

Este es un generador de HTML ultra sencilla que he escrito. Lo uso tiempo de compilación para generar html. Si uno es la generación de páginas HTML en tiempo de ejecución a continuación, hay mejores opciones disponibles

Aquí está el enlace

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

Y un ejemplo rápido

>> 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 es una biblioteca de generación de HTML que te permite crear etiquetas fácilmente En dominan, pitón palabras reservadas tienen el prefijo con un guión bajo, por lo que se vería así:

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


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

responsabilidad: yo soy el autor de dominar

3

Ok, aquí hay otro generador de HTML, o prefiero pensar de ella como un compilador.

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

Este es un conjunto de clases base que se pueden utilizar para definir etiquetas y atributos. Por lo tanto, una clase de etiqueta tiene atributos e hijos. Los niños son a su vez clases de etiquetas que tienen atributos e hijos, etc. También puede establecer parámetros que comiencen con su clase de raíz y que resuelvan las distintas ramas.

Esto le permitirá definir todas las clases de etiquetas que desee, así podrá crear clases personalizadas e implementar las etiquetas o atributos que desee.

acaba de empezar en esto, así que si alguien quiere probar :)