Django (čti “jang-goh/ˈdʒæŋɡoʊ/”) je populární, open-source webový framework, který nabízí kompletní sadu nástrojů pro vývoj moderních webových aplikací. Dokáže značně usnadnit a urychlit proces vytváření robustních webových aplikací tak, že ti poskytne hotové komponenty a konvence, které minimalizují opakovaní kódu a zjednodušují správu aplikací.
Framework je sada nástrojů, knihoven, komponent, šablon, konvencí a best practices, které usnadňují vývoj softwarových aplikací. Používání frameworku ti přinese tyto výhody:
Psal se rok 2003 a weboví vývojáři začali pracovat na projektu webových stránek pro publicisty. Po dvou letech byl projekt u konce. S nárůstem počtu projektů a opakovaným používáním obecných kódových vzorů se vývojáři rozhodli vytvořit univerzální framework pro vývoj webových aplikací. V červenci 2005 se povedlo Django uvést na trh jako open-source projekt. Od této doby se stále rozvíjí a vylepšuje.
Nejlépe si to ukážeme na lidech, kteří s ním pracují – vývojářích. Proč si Django chválí a nedají na něj dopustit?
Django usnadňuje vývoj webových aplikací už z pohledu využití ORM (Object-Relational Mapping). Znamená to, že se nemusíš starat o to, jak přesně komunikovat s databází pomocí klasických SQL dotazů. Místo toho stačí pracovat s databázovými tabulkami a záznamy přímo jako s objekty a instancemi tříd v Pythonu.
Když chceme vložit, aktualizovat nebo získat data z databáze, můžeme jednoduše pracovat s těmito objekty a nechat Django vygenerovat a provést odpovídající SQL dotazy za nás. Tímto způsobem se vyhýbáme ručnímu psaní a ladění složitých SQL dotazů a současně zůstáváme v prostředí Pythonu, které je pro mnoho vývojářů přirozenější a přívětivější.
Nemusíme také ručně vytvářet kompletní administrátorské rozhraní pro správu dat. Django tohle dělá automaticky za nás! Výsledkem je zjednodušené správa dat a obsahu webových aplikací. Takové řešení nabízí flexibilitu a možnost úprav podle potřeb projektu.
URL směrování v rámci Django je další užitečnou funkcí, která nám pomáhá s organizací navigace ve webové aplikaci.
Když uživatel navštíví určitou URL adresu ve webovém prohlížeči (například eshop.cz/produkty/), Django se postará o to, aby tato adresa byla přiřazena k určité části aplikace nazývané „pohled“ (view). Pohled je vlastně část kódu, která je zodpovědná za zpracování požadavku uživatele a vrácení odpovídajícího obsahu.
Díky vestavěnému směrovacímu systému v Django můžeme jednoduše definovat, jak se URL adresy aplikace mapují na konkrétní pohledy. To nám umožňuje organizovat navigaci a strukturu aplikace přehledným způsobem.
Django funguje na základě architektury Model-View-Template (MVT). Co znamená MVT?Model. Představuje způsob, jak reprezentovat data v aplikaci. V Django jsou modely jednoduché Python třídy, které popisují strukturu dat a relace mezi nimi. Modely se starají o komunikaci s databází a definují, jak se data uloží.
Pohledy (views). Jsou části kódu, které zpracovávají požadavky uživatelů a vracejí odpovídající odpověď (zpracovávají logiku aplikace). V Django jsou pohledy obvykle funkce nebo třídy, které zpracovávají požadavky HTTP a vracejí odpovídající obsah (například HTML stránky).
Šablony (templates). Definují vzhled a strukturu výstupu, který se zobrazí uživatelům. Šablony jsou HTML soubory, které obsahují speciální značky a proměnné pro dynamické vykreslování obsahu. Při vykreslování šablony se nahrazují proměnné daty z pohledů, čímž vzniká výsledná webová stránka.
Například, když uživatel navštíví stránku seznamu produktů v e-shopu, Django pomocí URL směrování určí, že požadavek má zpracovat určitý pohled (view), který načte data o produktech pomocí modelů (model), a nakonec vybere šablonu (template), která definuje, jak se tyto informace na stránce prezentují.
Django je vysoce flexibilní framework, který poskytuje širokou škálu funkcí a nástrojů pro efektivní vývoj webových aplikací. Mimo ORM a šablonovacího systému zaujme i dalšími vlastnostmi a schopnostmi:
Administrační rozhraní:
Formuláře:
Podpora mezinárodních aplikací:
Bezpečnostní autentizace a autorizace:
Škálovatelnost:
Rozšiřitelnost a komunita:
Zaujalo tě, co Django umí a víš, že by ti mohl pomoci? Pokud už umíš programovat v Pythonu, rádi tě naučíme pracovat i Django a usnadnit si a zefektivnit celý proces i výsledek programování. Podívej se, co ti můžeme v sedmitýdenním kurzu Django nabídnout.