Ci sono alcuni piccoli trucchi e suggerimenti che è possibile utilizzare nei loro progetti Django per accelerare lo sviluppo e risparmiare molti mal di testa a lungo termine. Dalla base all'oscuro, questi suggerimenti possono aiutare qualsiasi programmatore a diventare più abile con Django e tutto è gloria.
Django è un eccellente framework per Python. Anche se potrebbe non ottenere tanto inchiostro quanto altri framework popolari come Rails, è una struttura altrettanto raffinata di tutto il resto. Mette in risalto il principio DRY (Non ripeterlo) nella codifica pulita automatizzando molti dei processi in programmazione.
Per qualche motivo, i progetti tendono a essere spostati di tanto in tanto in loco. Questo può essere un orso assoluto da affrontare se prima non pianifichi la possibilità. Rob Hudson ha una tecnica eccellente per garantire che le tue implementazioni su Django possano essere spostate facilmente, semplicemente modificando alcune righe di codice nei tuoi file di impostazioni.
Il mio file di impostazioni Django predefinito è cambiato nel tempo per includere ora impostazioni che non dipendono dalla posizione del progetto sul file system. Questo è ottimo in un ambiente di team in cui più di una persona sta lavorando sullo stesso progetto o quando si distribuisce il progetto su un server Web che probabilmente ha percorsi diversi rispetto alla directory radice del progetto.
Il post di Rob contiene esempi di codice eccellenti per configurare l'installazione di Django in un modo molto flessibile.
Invece di codificare i singoli link, prova a utilizzare il tag % url% retrocompatibile per ottenere lo stesso risultato. Questo ti darà il assoluto URL, in modo che se il cielo non voglia, il tuo progetto Django si muova i collegamenti rimarranno intatti.
Essenzialmente il % url% prende un nome di vista e i suoi parametri e fa una ricerca inversa per restituire l'URL interrogato. Se apporti modifiche al tuo file urls.py, i collegamenti non si interromperanno.
Anche se non è il consiglio più avanzato, è una tecnica eccellente da usare nei tuoi progetti di Django.
Forse una delle più grandi caratteristiche di Django è il sistema di autenticazione utente che Django ha costruito direttamente nel core. È molto facile da configurare ed è dotato di un sistema robusto per autenticare gli utenti e configurare altre impostazioni necessarie.
Questo sistema utente è così fantastico che è persino stato suggerito di utilizzare Django come area di amministrazione per l'applicazione PHP. Ecco Jeff Croft sul perché Django è un'ottima soluzione per un sistema di amministrazione per qualsiasi applicazione, indipendentemente dalla lingua:
Una delle filosofie fondamentali di Django è l'accoppiamento lento. Oltre alla più seducente connotazione di amore libero, questo significa che ciascuno degli strati di Django "pacchiano" dovrebbe essere indipendente dagli altri, in modo tale che tu possa scegliere di usarne solo parti e parti, e / o scivolare in altri componenti se preferisci. Fortunatamente tu, è incredibilmente semplice imparare le basi del livello del modello di Django, che gestisce lo schema del database e la mappatura relazionale dell'oggetto "anche se non conosci Python. Chiunque può creare uno schema di database in Django e ottenere il gioiello del framework - è l'interfaccia di amministrazione - con pochissimo lavoro, anche se si pianifica di scrivere la stessa logica dell'applicazione in un'altra lingua.
Django ti permette di servire file statici nel tuo ambiente di sviluppo, ma non il tuo ambiente di produzione. Perché? Non è efficiente. Affatto. Jacobian.org fornisce una spiegazione.
Django deliberatamente non serve i media per te, ed è progettato in questo modo per salvarti da te stesso. Se provi a pubblicare contenuti multimediali dalla stessa istanza di Apache che serve Django, ucciderai assolutamente le prestazioni. Apache riutilizza i processi tra ogni richiesta, quindi una volta che un processo memorizza nella cache tutto il codice e le librerie per Django, questi restano in memoria. Se non si sta utilizzando quel processo per soddisfare una richiesta Django, tutta la memoria in testa viene sprecata.
Utilizzando un server separato per ospitare e servire questi file statici, le prestazioni non ne risentiranno. Se non si desidera acquistare un server, è possibile utilizzare Amazon S3 per ospitare i file in modo relativamente economico.
Gli strumenti di debug per qualsiasi lingua sono inestimabili. Accelerano lo sviluppo individuando errori nel codice e potenziali insidie che potrebbero accadere. Rob Hudson ha recentemente rilasciato la barra di debug di django per aiutare con il codice di debug, e potrebbe essere di grande aiuto per qualsiasi sviluppatore.
La barra degli strumenti stessa è una parte del middleware che istanzia ogni oggetto del pannello su richiesta ed esegue l'elaborazione e il rendering mentre la risposta viene riscritta nel browser. In questo modo è essenzialmente un insieme di classi middleware (i pannelli) raggruppate per visualizzare una singola barra degli strumenti. Ogni pannello sottoclasse una classe del pannello di base e sostituisce alcuni metodi per eseguire il rendering della barra degli strumenti.
Il test delle unità è un ottimo modo per garantire che le modifiche al codice funzionino come previsto e non infrange alcun codice precedente per mantenere la compatibilità con le versioni precedenti. Una grande caratteristica di Django è che è incredibilmente facile scrivere test di unità. Django offre la possibilità di usare il doctest o l'unittest direttamente dalla scatola.
La documentazione di Django offre un ottimo tutorial e alcuni esempi di codice su come impostare i test unitari per mantenere il tuo codice senza intoppi e individuare eventuali brutti bug.
L'imbroglio è sbagliato? Spero di no. Questo cheatsheet di 2 pagine contiene alcune pepite d'oro a portata di mano che si potrebbe dover scavare nella documentazione di Django per trovare.
Il cheatsheet presenta questi argomenti utili:
Modelli
Modelli
Le forme
Sappiamo tutti che il tempo speso a guardare la documentazione è il tempo impiegato a non risolvere i problemi del mondo attraverso il codice. E nessun buon programmatore lo vuole.
Django-chunks è essenzialmente un modo per creare blocchi di codice riutilizzato nei tuoi modelli. Tranne la creazione dei blocchi è reso ancora più semplice utilizzando l'editor di testo ricco di Django.
Beh, in sostanza, permette a qualcuno di definire "blocchi" (volevo chiamarli blocchi, ma ciò sarebbe molto confuso per ovvi motivi) di contenuto nel tuo modello che può essere modificato direttamente dalla fantastica interfaccia di amministrazione di Django. Lanciare un controllo editor di testo avanzato su di esso rende ancora più facile.
Replicando bit di codice riutilizzabile, django-chunks garantisce che i pezzi del layout possano essere modificati rapidamente e facilmente, se necessario. Sebbene django-chunks sia in realtà solo un modello e un tag modello, può notevolmente accelerare lo sviluppo replicando i processi.
Se le prestazioni saranno un problema con l'applicazione basata su Django, ti consigliamo di installare una sorta di memorizzazione nella cache. Mentre Django offre molte opzioni per il caching, il meglio è di gran lunga memcached. Installare e usare memcached è abbastanza facile con Django se si utilizza il modulo cmemcache. Una volta installato il modulo, devi solo modificare una singola opzione di configurazione e le tue pagine Django verranno illuminate rapidamente.
Se ancora non comprendi pienamente il potere di Django dopo aver letto questo articolo, c'è un ragionamento logico per l'utilizzo di Django nel tuo prossimo progetto: risparmi tempo a hackerare insieme progetti con diversi set di software. Jeff Croft spiega perché la creazione di un progetto in Django è molto più efficiente rispetto al tentativo di hackerare insieme gli script.
Ora, se sei abituato a costruire siti usando un'applicazione di blogging (Wordpress, TXP, ecc.) Come CMS, sei abituato a ottenere tutto ciò gratuitamente. Ma hai anche un sacco di cose incorporate che forse non vuoi (a meno che, ovviamente, non stia costruendo un blog). La limitazione che ho riscontrato usando un'applicazione di blogging per il mio sito personale è che volevo che fosse più di un semplice blog. Non appena ho provato a hackerare un blog in una galleria di foto, un feed di collegamenti, un database di statistiche, un gioco di Sudoku o qualsiasi altra cosa a cui potessi pensare, le cose hanno iniziato a diventare crufty. Ho anche creato un sito web in cui ho cercato di utilizzare un'app per forum di discussione (vBulletin) come CMS e che ha avuto gli stessi risultati. Ha funzionato - una specie di - ma non era estensibile, era molto hacker, e solo in generale era inelegante.
Con Django, ottieni tutte queste cose e nessuna delle limitazioni di un'app di blogging.
Django ti consente di espandere il tuo sito web in qualsiasi direzione, senza doversi preoccupare di hackerare il design o di assicurarsi che gli script e i database siano compatibili. E 'solo lavori.
Glen Stansberry è uno sviluppatore web e blogger che ha faticato più volte di quanto avrebbe voluto ammettere con i CSS. Puoi leggere altri suggerimenti sullo sviluppo web sul suo blog Web Jackalope.
Se hai trovato utile questo post, ti preghiamo di ringraziarlo con Digg o Stumble.