/ / Creando html legible con plantillas django - python, html, django, templates

Creación de html legibles con plantillas django - python, html, django, templates

Cuando utilizo Django para la creación de plantillas html, ¿cómo creo un buen formato de marcado html?

Estoy tratando de hacer uso de los bloques de contenido. Pero los bloques de contenido se muestran en diferentes niveles de sangría en diferentes plantillas. ¿Cómo puedo hacer que los bloques de contenido aparezcan con sangría, como si alguien escribiera el html a mano?

Estoy teniendo el mismo problema con las nuevas líneas; Puedo romper todos los bloques juntos en la plantilla. En ese punto, el html se ve mejor, pero las plantillas no se pueden mantener.

¿Supongo que la pregunta es cómo crear un marcado html con el sistema de plantillas django?

Estoy sorprendido por las respuestas hasta ahora. Encuentro que las ayudas HTML con formato agradable escriben el correspondiente CSS y JavaScript. Además de hacer más fácil agregar contenido más adelante.

Respuestas

14 para la respuesta № 1

Christian S. Perone de Pyevolve tiene exactamente lo que estas buscando. Utiliza middleware para interceptar el objeto HTTPResponse y ejecutarlo BeautifulSoup.

Sin embargo, me imagino que su sitio sufrirá un leve impacto en el rendimiento. Recomiendo ejecutar algunos puntos de referencia antes de implementar este middleware en un sitio de producción.


3 para la respuesta № 2

Puede anular el método de renderizado de NodeList como lo he hecho. Vea mi pregunta con código de trabajo:

¿Una sangría adecuada en las plantillas de Django (sin parches de mono)?


1 para la respuesta № 3

La legibilidad de HTML no importa. En un sistema como Django o Rails, HTML es un formato de salida, no un formato de origen. Cuando las personas editan HTML a mano, tienen razón en preocuparse por la sangría y el espaciado, porque es un formato de origen, y alguien tendrá que editarlo en el futuro. Pero la salida de plantillas es solo eso: salida. El navegador no se preocupa por la sangría. En este punto, las únicas personas que leen el HTML son las personas que miran Ver - Fuente.


0 para la respuesta № 4

Estoy impresionado de que te importe el html resultante, ¡solo me preocupa que las plantillas estén ordenadas y sean fáciles de leer! Pero, en respuesta a tu pregunta, ¿has visto middleware?

http://docs.djangoproject.com/en/dev/topics/http/middleware/

Luego use el módulo Tidy python para volver a formatear el html.

http://pypi.python.org/pypi/PythonTidy/


0 para la respuesta № 5

Recomiendo ejecutar la salida del motor de plantillas a través de un ordenador HTML, como µTidylib.


0 para la respuesta № 6

Si está usando plantillas Django para hacer el formato de cadena de cadenas largas pero simples, puede usar las cadenas de comillas triples de Python con .format () en una función def:

def templated_string(context_dict):
return """This is an example
of a long string across multiple lines.
It can be used to format {something} for
{name}"s own purposes, even though
it looks funny in code""".format(**context_dict)

Entonces templated_string({"name": "rileymat", "something": "whatever you want"}) hace lo sensible Puede generar HTML en bruto de esa manera ... que luego tiene exactamente el espacio en blanco que solicita.