Pillola Teorica: cosa è il frameworkPer framework si intende una architettura logica di supporto sul quale una software o un applicativo può essere costrui... Leggi Django e come funziona.
#axts #devdiary #django #pillole
NEWSLETTER? NO, GRAZIE!
Unisciti al mio canale Telegram! Onnipresente. Silenzioso. Non ingombrante.
> AxelTheSaint <
Django è un web frameworkPer framework si intende una architettura logica di supporto sul quale una software o un applicativo può essere costrui... Leggi di alto livello scritto in Python. Consente lo sviluppo di siti web e applicativi web oriented sicuri e scalabili rapidamente.
Django è gratuito e open source, molto popolare ed utilizzato a livello globale ed è facilmente integrabile con le numerose librerie in linguaggio Python.
Perchè Django è divenuto così popolare?
In poche parole: per applicativi web “standard” (ndr) è uno strumento potentissimo in grado di ridurre molto il tempo di sviluppo e il relativo bug fixing. Ma vediamo più nel dettaglio alcuni ragioni più tecniche:
- Completezza: mette a disposizione degli sviluppatori tantissime componenti già pronte all’uso. Il focus è concentrarsi sullo sviluppo del proprio sito web/software senza dover creare da zero funzionalità ormai rodate e diffuse. (Ad esempio: form di contatti, sistemi di recupero password o inserimento dati, ecc. ecc.)
- Sicurezza: Django è stato concento per prestare un validissimo supporto in termini di sicurezza. Fornisce infatti una serie di accorgimenti utili già “preconfezionati” per evitare gran parte degli errori, e rischi, più comuni. (ad esempio: protezione automatica per le vulnerabilità SQL Injection, Cross-Site Scripting, Cross-Site request forgery, ecc. ecc.)
- Versatilità: può essere/è utilizzato per la creazione di qualsivoglia tipo di sito, CMS, WIKI, social network, e-commerce, news e via dicendo. Fornisce il contenuto in tanti formati diversi come html, json, rss, e può essere esteso attraverso componenti esterne come Django Rest FrameworkPer framework si intende una architettura logica di supporto sul quale una software o un applicativo può essere costrui... Leggi (per le API). Inoltre supporta, in modo nativo, i database in tecnolgia MySQL, PostgreSQL, SqlLite.
- Scalabilità: grazie all’architettura con cui opera, è possibile scalare un sito, o software web oriented, scritto in Django, fino a sostenerne l’uso da parte di centinaia o addirittura milioni di utenti. (Un problema che invece emerge con l’uso di altre tecnologie e che costringe a costosi, lenti e pericolosi porting)
- Mantenibilità: Django è stato sviluppato rispettando il principio di scrittura software definito come D.R.Y (ovvero Don’t Repeat Yourself). Questo, abbinato alla sua architettura modulare, consente di mantenere il proprio codice solido e aggiornato nel tempo.
- Portabilità: visto che il web frameworkPer framework si intende una architettura logica di supporto sul quale una software o un applicativo può essere costrui... Leggi è stato scritto in Python, ne eredità la natura portabile, permettendo così il suo utilizzo in tutti i sistemi operativi più comunemente diffusi. (Python infatti può essere eseguito su vari sistemi operativi, sia desktop che mobile, con poche, alle volte nessuna, configurazioni necessarie).
Architettura MVC: Model Controller View
L’architettura in Django si basa sul classico modello, condiviso anche da altri web frameworkPer framework si intende una architettura logica di supporto sul quale una software o un applicativo può essere costrui... Leggi, di Model View Controller.
Per frameworkPer framework si intende una architettura logica di supporto sul quale una software o un applicativo può essere costrui... Leggi MVC si intende un supporto allo sviluppo la cui logica di funzionamento è suddivisa in 3 parti fondamentali:
- Model: parte che definisce la struttura dei dati, ovvero quali dati l’applicazione deve contenere
- View: parte che descrive come i dati dell’app vengono mostrati
- Controller: parte che detiene la logica di aggiornamento dei modelli (oggetti all’interno di Model) e/o le viste (oggetti all’interno di View), in risposta ad un input fornito dall’utente utilizzatore
Architettura Django: MTV – Model Template View
Per quello che riguarda Django la struttura viene definita MTV – Model Template View. La differenza sostanziale dalla precedente meccanica di funzionamento, di cui comunque ne condivide lo scheletro, sta nel fatto che le viste non scelgono come i dati vengono mostrati, ma decidono quali dati mostrare. Il ruolo di come mostrarli spetta infatti ai template.
Model: data access layer
Definisce la struttura delle entità del nostro sito, tradotte poi in tabelle nel database
Template: presentation layer
Descrive come i dati vengono mostrati nelle pagine
View: business logic layer
Gestisce le richieste e le risposte http, contiene la logica per sapere a quali dati accedere, e se eventualmente elaborarli, attraverso i models. Delega la formattazione della risposta visibile all’utente ai templates.
Urls
Questa voce non è contenuta all’interno dell’acronimo per indicare la struttura di Django, tuttavia è un aspetto importante della sua architettura. Grazie a questa specifica, è possibile raccogliere qui tutti i riferimenti di risorse che il meccanismo dovrà caricare, organizzare o raggiungere (mappa delle risorse disponibili).
Avviare un progetto in Django
Per avviare un progetto in Django ho scritto una guida dedicata che puoi trovare qui:
Come avviare un progetto in Django
Appendice Teorica: Python
Per saperne di più sul linguaggio Python, requisito fondamentale per poter utilizzare il frameworkPer framework si intende una architettura logica di supporto sul quale una software o un applicativo può essere costrui... Leggi Django, ho preparato un’appendice teorica dedicata che puoi trovare qui: Appendice Teorica: Python
Risorse
Per approfondire di più sull’argomento, ecco la documentazione ufficiale del progetto Django: Documentazione