Django tutorial: Značajke, Architekstura i povijest
⚡ Pametni sažetak
Django je besplatan program otvorenog koda Python web okvir izgrađen na obrascu model-view-template, omogućujući brz razvoj sigurnih, skalabilnih web stranica vođenih bazama podataka putem komponenti za višekratnu upotrebu, automatskog administratorskog sučelja i dizajna s uključenim baterijama.

Django pokreće neke od najvećih web stranica, a istovremeno održavaping svakodnevni razvoj brz i organiziran. Prije istraživanja njegovih značajki, arhitekture i povijesti, odjeljci u nastavku započinju s osnovama web okvira i po čemu se Django razlikuje.
Sažetak Django vodiča
Ovaj Django tutorial pokriva sve osnovne teme od nule. U ovom tutorialu naučit ćete koncepte poput što je Django, njegova povijest, značajke, karakteristike Django frameworka, komponente Djanga, njegove prednosti i nedostatke i još mnogo toga.
Prije nego što naučimo Django, shvatimo:
Što je web okvir?
Web framework je biblioteka koda koja vam pomaže u izgradnji fleksibilne, skalabilne i održive dinamičke web stranice, web aplikacije ili web usluge. Različiti web frameworki uključuju Zend za PHP, Ruby na tračnicama za Ruby i ostale.
Što je Django?
Django je okvir za web razvoj za Python koji nudi standardne metode za brz i učinkovit razvoj web stranica. Primarni cilj ovog visokorazinskog web okvira je stvaranje složenih web stranica vođenih bazama podataka. Pomaže vam u izgradnji i održavanju kvalitetnih web aplikacija. Omogućuje vam da proces razvoja bude gladak i da štedi vrijeme za brzi razvoj.
Zašto Django? Ključne prednosti Djanga
Evo glavnih prednosti Djanga:
- Django je jednostavan za postavljanje i pokretanje. Nudi razne mogućnosti za početak.
- Pruža spremno korisničko sučelje za administrativne aktivnosti.
- Omogućuje višejezične web stranice korištenjem ugrađenog sustava internacionalizacije.
- Pomaže vam da brzo zadovoljite ogromne prometne potrebe.
- Django se koristi za izgradnju svih vrsta sustava za upravljanje sadržajem, društvenih mreža, kao i platformi za znanstveno računanje.
- Django vam pomaže u pružanju end-to-end testiranja aplikacija.
- Pomaže vam dokumentirati vaš API pomoću HTML izlaza.
- REST okvir ima bogatu podršku za nekoliko protokola za autentifikaciju.
- Nudi dozvole i pravila ograničavanja.
- Široko se koristi za API zahtjeve za ograničenje brzine od jednog korisnika.
Povijest Djanga
| Godina | Prekretnica |
|---|---|
| 2003 | Projekt su pokrenuli Adrian Holovaty i Simon Willison kao interni projekt u novinama Lawrence Journal-World. |
| srpanj 2005 | Objavljen je u srpnju 2005. pod nazivom "Django", po jazz gitaristu Djangu Reinhardtu. |
| lipnja 2008 | Izjavljeno je da je Django softver Foundation (DSF) bi održavao Django. |
| Srpanj 29 2009 | Django 1.1 je objavljen sa značajkama poput agregata i testova temeljenih na transakcijama. |
| 17 svibnja 2010 | Objavljen je Django 1.2. Ažuriranje je nudilo značajke poput više baza podataka i pozadinskog sustava za e-poštu, a napravljena su i poboljšanja za sesije i kolačiće. |
| Ožujak 23 2011 | Verzija 1.3 uvela je značajke poput prikaza temeljenih na klasama i statičkih datoteka. |
| Ožujak 23 2012 | Verzija 1.4 pokrenuta je s novim značajkama poput vremenskih zona i testiranja u pregledniku. |
| Veljače 26 2013 | Verzija 1.5 došla je s Python 3 podrške i konfigurabilne značajke korisničkog modela. |
| Studenog 6 2013 | Verzija 1.6 dolazila je s upravljanjem transakcijama baze podataka i značajkama grupiranja veza. |
| 2 rujna 2014 | Verzija 1.7 imala je nove značajke poput učitavanja aplikacija, migracija i konfiguracije. |
| 1 travnja 2015 | Za više mehanizama za predloške pružena je izvorna podrška. |
| 1 prosinac 2015 | U verziji 1.9 uvedena je značajka automatske provjere lozinke. |
| Kolovoz 1 2016 | U verziji 1.10, pretraživanje cijelog teksta za PostgreSQL lansiran je. |
| 4 travnja 2017 | Verzija 1.11 postala je posljednja verzija koja je podržavala Python 2.7. |
| 2 prosinac 2017 | Verzija 2.0 postala je prva Python Samo verzija s 3 izdanja. |
| Kolovoz 1 2018 | Verzija 2.1 došla je sa značajkama podrške za dopuštenja "pregled" modela. |
| 2021 | Uklonjena je podrška za Django 3.0 i dodana je podrška za Django 3.2. |
Sada u ovom Django tutorialu za početnike, saznajmo više o značajkama Djanga.
Značajke Djanga
Ispod su značajke Djanga:
- Pomaže vam definirati obrasce za URLu vašoj prijavi.
- Jednostavno, ali moćno URL sustav.
- Ugrađeni sustav autentifikacije.
- Objektno orijentirana baza podataka programskog jezika koja nudi najbolju pohranu i dohvaćanje podataka u klasi.
- Automatsko administratorsko sučelje omogućuje dodavanje, uređivanje i brisanje stavki. Administratorsku ploču možete prilagoditi svojim potrebama.
- Okvir predmemorije dolazi s više mehanizama predmemorije.
U ovom tutorijalu o Django frameworku, sada ćemo naučiti o karakteristikama Djanga.
Karakteristike Djanga
Evo glavnih karakteristika Djanga:
- Labavo spojeni – Django vam pomaže da svaki element svog steka učinite neovisnim od ostalih.
- Less kod – Osigurava učinkovit razvoj.
- Ne ponavlja se – Sve treba razviti na jednom mjestu, umjesto da se ponavlja.
- Brz razvoj – Django nudi brz i pouzdan razvoj aplikacija.
- Dosljedan dizajn – Django održava čist dizajn i olakšava praćenje najboljih praksi web razvoja.
Zatim ćemo u ovom Django vodiču za početnike učiti o arhitekturi Djanga.
Django Architekstura: MVC i MVT
Ispod je detaljna arhitektura Djanga:
Django Architektura
MVC obrazac
Kada govorimo o aplikacijama koje pružaju korisničko sučelje (web ili desktop), obično govorimo o MVC arhitekturi. MVC obrazac temelji se na Modelu, Viewu i Controlleru.
The Model definira strukturu podataka i brine se za upite bazi podataka.
The Pogled definira koji podaci trebaju biti predstavljeni i vraća HTTP odgovor.
The kontrolor je dio aplikacije koji obrađuje interakciju s korisnikom.
Django MVC-MVT uzorak
Model-View-Template (MVT) je drugačiji koncept u usporedbi s MVC-om. Glavna razlika između ova dva arhitektonska obrasca je u tome što sam Django upravlja dijelom Controller (softverski kod koji kontrolira interakcije između Modela i Viewa). Predložak je HTML datoteka koja je pomiješana s Django Template Language datotekom, koja se naziva i DTL.
Donji dijagram prikazuje kako sve komponente MVT uzorka međusobno djeluju kako bi poslužile određeni korisnički zahtjev.
MVT proširenje Architektura
Kao što se vidi na gornjem dijagramu, korisnik zahtijeva resurs od Djanga. Django djeluje kao kontroler i provjerava dostupan resurs u URL.
Ako URL mape, poziva se prikaz koji komunicira s modelom i predloškom. Django zatim odgovara korisniku i šalje predložak kao odgovor.
Sada u ovoj seriji Django tutorijala za početnike, učit ćemo o komponentama Djanga.
Komponente Djanga
Oblik
Django ima snažnu biblioteku obrazaca koja rukuje iscrtavanjem obrazaca kao HTML-a. Knjižnica pomaže u potvrđivanju dostavljenih podataka i njihovom pretvaranju u Python vrste.
Ovjera
Upravlja korisničkim računima, grupama, korisničkim sesijama temeljenim na kolačićima i još mnogo toga.
Admin
Čita metapodatke u vašim modelima kako bi pružio robusno sučelje koje se može koristiti za upravljanje sadržajem na vašoj stranici.
internacionalizam
Django pruža podršku za prevođenje teksta u različite jezike i formatiranje datuma, vremena, brojeva i vremenskih zona specifično za lokalnu konfiguraciju.
Sigurnost
Django pruža zaštitu od sljedećih napada:
- Krivotvorenje zahtjeva na različitim mjestima (CSRF)
- Skriptiranje na više mjesta
- SQL injekcija
- Jahanje klikova
- Daljinsko izvršavanje koda
Poznate tvrtke koje koriste Django
Evo tvrtki koje koriste Django:
- Bitbucket
- Disqus
- NASA
- PBS (Public Broadcasting Service)
- Mozilla
- Washington Post
- The New York Times
- Los Angeles Times
- Čuvar
- National Geographic
- Discovery Channel
Nedostaci korištenja Djanga
Evo nekih nedostataka korištenja Djanga:
- Jedan proces ne može istovremeno obraditi više zahtjeva.
- Django je vrlo monolitan alat.
- Komponente se raspoređuju zajedno, što može stvoriti zbrku.
- Za rad na Djangu potrebno je poznavanje cijelog sustava.
- To čini komponente web aplikacije čvrsto povezanima.
- Morate dugo programirati za manje zadatke.


