Ce este Django?

Django este un Python Web Framework de nivel înalt ce încurajează:

  • dezvoltarea rapidă a aplicațiilor
  • designul curat și pragmatic (reutilizarea codului)
  • performanța
  • eleganța

Django are grijă de o mare parte din bătaia de cap a dezvoltării Web, astfel încât să vă puteți concentra pe scrierea aplicației, fără a fi nevoie să reinventați roata.

MVC/MTV

Model–view–controller este un model de proiectare software folosit pentru implementarea interfețelor utilizator. Aceasta împarte o aplicație software în trei părți interconectate, astfel încât să se poată separa clar reprezentarea internă a informațiilor de modurile în care acestea sunt prezentate utilizatorului.

Model

Un model este o sursă unică, definitivă a informațiilor cu privire la datele stocate. Acesta conține câmpurile esențiale și comportamentul datelor pe care le stochezi. În general, fiecare model este mapat peste un singur tabel de baze de date. De reținut:

  • Fiecare model este o clasa Python ce are ca părinte django.db.models.Model.
  • Fiecare atribut/field al clasei reprezintă o coloană din tabelul asociat acesteia.
  • Fiecare instanță a clasei reprezintă un rand din tablelul asociat acesteia.
  • Django oferă un API auto-generat pentru accesul la baza de date.

Exemplu:

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

Mai multe detalii aici.

View / Template

Fiind un framework web, Django are nevoie de un mod convenabil de a genera HTML dinamic. Abordarea cea mai comună se bazează pe template-uri. Un template conține părțile statice ale paginii HTML dorite precum și câteva elemente de sintaxă speciale care descriu modul în care conținutul dinamic va fi inserat. Pentru un exemplu hands-on de creare de pagini HTML cu template-uri, vezi acest tutorial.

Controller / View

Django folosește conceptul de “view” pentru a încapsula logica responsabilă pentru procesarea solicitării unui utilizator și pentru returnarea răspunsului. În Dango, un view este un “tip” de pagină Web care în general servește o funcție și un template specifice.

Mai multe detalii aici.

ORM (object relational mapping)

ORM este o tehnică care vă permite interogarea și manipularea datelor dintr-o bază de date utilizând o paradigmă orientată obiect (OOP).

Avantaje:

  • DRY: definești un model de date, apoi este ușor să îl actualizezi, menții și reutilizezi.
  • Nu trebuie să știu sintaxă SQL
  • Interogarea bazei de date este la fel de ușoară ca apelarea unei metode.

Interfață de administrare

Una dintre cele mai puternice părți ale lui Django este interfața de administrare automată. Folosește metadatele de la modelele tale pentru a oferi o interfață rapidă, centrată pe model, unde utilizatorii pot:

  • Face operații CRUD pe date
  • Creea superuseri (adiministratori)
  • Creea alți useri, grupuri și permisiuni