/ / Creazione di html leggibili con modelli django - python, html, django, modelli

Creazione di html leggibile con i modelli django - python, html, django, templates

Quando uso Django per il template HTML come faccio a creare una buona formattazione markup HTML.

Sto cercando di utilizzare i blocchi di contenuti. Ma i blocchi di contenuto vengono visualizzati a diversi livelli di rientro in diversi modelli. Come faccio a mostrare i rientri dei blocchi di contenuto come se fosse se qualcuno dovesse scrivere a mano l'html.

Sto riscontrando lo stesso problema con le newline; Posso distruggere tutti i blocchi insieme nel modello. A quel punto l'html sembra migliore, ma i modelli non sono realizzabili.

Immagino che la domanda sia: come creare un markup HTML piuttosto con il sistema di template django?

Sono sorpreso dalle risposte finora. Trovo che HTML ben formattato aiuti a scrivere il CSS e JavaScript corrispondenti. Oltre a rendere più semplice l'aggiunta di contenuti in un secondo momento.

risposte:

14 per risposta № 1

Christian S. Perone di Pyevolve ha esattamente quello che stai cercando. Usa il middleware per intercettare l'oggetto HTTPResponse ed eseguirlo BeautifulSoup.

Immagino che il tuo sito subirà un leggero calo delle prestazioni, tuttavia. Consiglio di eseguire alcuni benchmark prima di distribuire questo middleware in un sito di produzione.


3 per risposta № 2

È possibile ignorare il metodo di rendering di NodeList come ho già fatto. Vedi la mia domanda con il codice di lavoro:

Indentazione corretta nei template di Django (senza patch scimmia)?


1 per risposta № 3

La leggibilità dell'HTML non ha importanza. In un sistema come Django o Rails, HTML è un formato di output, non un formato di origine. Quando le persone modificano manualmente l'HTML, hanno ragione a preoccuparsi del rientro e della spaziatura, perché è un formato sorgente e qualcuno dovrà modificarlo in futuro. Ma l'output dei template è proprio questo: output. Il browser non si preoccupa del rientro. A questo punto le uniche persone che leggono l'HTML sono persone che guardano View - Source.


0 per risposta № 4

Sono impressionato dal fatto che ti interessi del codice HTML risultante - mi preoccupo solo di rendere i modelli ordinati e leggibili! Ma in risposta alla tua domanda, hai guardato al middleware?

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

Quindi utilizzare il modulo Tidy Python per riformattare l'html.

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


0 per risposta № 5

Consiglio di eseguire l'output del motore del modello tramite un ordinatore HTML, ad esempio μTidylib.


0 per risposta № 6

Se stai utilizzando i modelli Django per eseguire la formattazione di stringhe di stringhe lunghe ma semplici, puoi utilizzare le stringhe a tre virgolette di Python con .format () in una funzione 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)

Poi templated_string({"name": "rileymat", "something": "whatever you want"}) fa la cosa ragionevole. In questo modo puoi generare HTML grezzo ... che quindi ha esattamente lo spazio bianco che desideri.