Perché la fiaschetta usa Jinja2 e non xpath?

0

Sto appena iniziando con Python e siccome vengo da uno sfondo PHP (quindi devo adattare la mia mente per avvolgere nuovi concetti), una domanda importante rimane senza risposta - perché Flask ha bisogno di un motore di template ?

Il modo in cui ero abituato a fare cose, era avere un template.html che contenesse html valido senza alcuna logica e poi, quando necessario, basta caricare il file in un oggetto DOMDocument e navigare usando DOMXpath . Questo mi ha reso perfettamente logico - lascia la parte UI separata dalla parte LOGIC.

Ma ora che sto iniziando a imparare un nuovo linguaggio, mi costringe un po 'a tornare a mescolare in logica con l'interfaccia utente. Quindi si riduce a questo - sono io, il DOM e il percorso xpath sono solo qualcosa che faccio per rendere la mia vita "più difficile", oppure Flask ha sbagliato a usare un motore di template?

    
posta Morgan Wilde 07.02.2013 - 17:15
fonte

1 risposta

1

Non c'è assolutamente nulla di sbagliato nell'usare un motore di template purché sia completamente focalizzato sulla logica del display. Ripetizione di elenchi, stampa di campi da record, formattazione di stringhe: tutto ciò va bene. Hai ancora un confine ben definito tra dove stai "facendo le cose" e dove stai semplicemente formattandolo per la visualizzazione. Quello che non dovresti fare è in realtà modificare o, peggio ancora, generare i dati nel tuo codice di visualizzazione. Il punto è semplificare la ricerca di dove provengano o siano stati modificati dati e amp; semplificare la modifica di una parte senza l'altra.

Con una separazione ideale delle preoccupazioni, la stessa logica applicativa potrebbe essere utilizzata, non modificata, per generare il tuo sito, effettuare una riprogettazione totale del codice HTML, generare una versione mobile, esportazioni XML / JSON o qualsiasi altra rappresentazione possibile. Quello che stavi facendo prima sembra legare direttamente la tua logica applicativa alla struttura del tuo modello - l'esatto opposto di "non combinare logica e interfaccia utente" sta cercando di ottenere - un'applicazione assurda e letterale e dogmatica di una regola generale.

    
risposta data 07.02.2013 - 18:53
fonte

Leggi altre domande sui tag