Django

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 13. února 2022; kontroly vyžadují 11 úprav .
Django
Typ webový rámec
Autor Adrian Holovatý , Simon Willison
Vývojář Django Software Foundation [1]
Zapsáno v Python [1]
Rozhraní webové rozhraní
Operační systém multiplatformní
První vydání 21. července 2005 [2] ( 2005-07-21 )
Nejnovější verze 4.0.7 ( 3. srpna 2022 ) [3]
Stát V aktivním vývoji
Licence 3-klauzule BSD [4]
webová stránka djangoproject.com
 Mediální soubory na Wikimedia Commons

Django (Django, ['dʒæŋɡoʊ] [5] ) je bezplatný rámec webových aplikací v Pythonu , který využívá návrhový vzor MVC [6] . Projekt je podporován Django Software Foundation .

Stránky Django jsou vytvořeny z jedné nebo více aplikací, u kterých se doporučuje, aby byly zcizitelné a připojitelné. To je jeden z významných architektonických rozdílů tohoto frameworku od některých jiných (například Ruby on Rails ). Jedním ze základních principů frameworku je DRY ( Do n't repeat yourself )  

Na rozdíl od jiných frameworků jsou také Django's URL handlery explicitně konfigurovány pomocí regulárních výrazů .

Pro práci s databází používá Django vlastní ORM , ve kterém je datový model popsán třídami Pythonu a z něj je generováno schéma databáze . [7]

Příklad webové aplikace, která zobrazuje „ Ahoj světe !“:

z django.http import HttpResponse def hello ( request ): return HttpResponse ( "Ahoj světe" )

Použití

Webový framework Django používají Instagram [8] , Disqus [9] , Mozilla [10] , The Washington Times , Pinterest , YouTube , Google a další.

Django se také používá jako webová komponenta v projektech:

  • Grafit [11]  - Grafický a pozorovací systém
  • FreeNAS  je bezplatná implementace systému úložiště a sdílení souborů atd.

Vývojáři

  • Russell Keith - Magee 
  • Adrian Holovaty ( angl.  Adrian Holovaty ),
  • Simon Willison __  _
  • Jacob Kaplan  - Mech
  • Wilson Miner _  _

Vývojáři prohlašují, že se nezavazují striktně dodržovat žádnou metodiku při vývoji projektu a raději dělají to, co se jim zdá nejlogičtější. [12]

Architektura

Architektura Django je podobná „ Model-View-Controller “ (MVC). Ovladač klasického modelu MVC zhruba odpovídá úrovni, která se v Djangu nazývá View a prezentační  logiku View implementuje v Django úroveň Template . Z tohoto důvodu je vrstvená architektura Django často označována jako „Model-Template-View“ (MTV).  

Počáteční vývoj Django jako zpravodajského enginu měl významný dopad na jeho architekturu: poskytuje řadu nástrojů, které pomáhají při rychlém vývoji informačních webových stránek. Vývojář tedy například nemusí vytvářet ovladače a stránky pro administrativní část webu, Django má vestavěnou aplikaci pro správu obsahu, kterou lze zahrnout do libovolného webu vytvořeného na Django a která může spravovat více webů na jednou na stejném serveru. Administrační aplikace vám umožňuje vytvářet, upravovat a odstraňovat jakékoli objekty obsahu webu, protokolovat všechny provedené akce a poskytuje rozhraní pro správu uživatelů a skupin (s přiřazením práv objekt po objektu).

Distribuce Django obsahuje také aplikace pro systém komentářů, syndikaci RSS a Atom , „statické stránky“ (které lze spravovat bez nutnosti psát ovladače a pohledy), přesměrování URL a další.

Funkce

Některé funkce Django:

  • ORM , rozhraní API pro přístup k databázi s podporou transakcí [13]
  • vestavěné administrátorské rozhraní [14] s překlady již dostupnými v mnoha jazycích
  • správce URL regulárních výrazů [15]
  • rozšiřitelný systém šablon se značkami a dědičností [16]
  • systém mezipaměti [17]
  • internacionalizace [18]
  • zásuvná aplikační architektura, kterou lze nainstalovat na jakýkoli web Django
  • "generic views" - šablony funkcí ovladače
  • autorizace a autentizace, připojení externích autentizačních modulů: LDAP , OpenID atd.
  • filtrační systém ("middleware") pro vytváření dalších obslužných programů, jako jsou filtry zahrnuté v distribuci pro ukládání do mezipaměti, kompresi, normalizaci URL a podporu anonymních relací
  • knihovna pro práci s formuláři (dědění, vytváření formulářů podle stávajícího databázového modelu) [19]
  • vestavěná automatická dokumentace o značkách šablon a datových modelech, přístupná prostřednictvím administrativní aplikace

Některé komponenty frameworku spolu volně souvisí, takže je lze snadno nahradit podobnými. Místo vestavěných šablon lze použít například Mako nebo Jinja .

Výměna řady komponent (například ORM) je přitom poměrně obtížná.

Kromě funkcí zabudovaných do jádra frameworku existují balíčky, které rozšiřují jeho schopnosti. Funkce poskytované balíčky, stejně jako úplný seznam balíčků, lze snadno sledovat prostřednictvím speciálního zdroje - www.djangopackages.com .

Verze a chronologie jejich vydání

Některá vydání Django obdrží stav vydání dlouhodobé podpory (LTS) [20] . Dostávají aktualizace zabezpečení a ochrany před ztrátou dat po garantovanou dobu, obvykle tři roky nebo déle.

Verze Datum [21] Poznámka
Stará verze, nepodporovaná:0,90 [22] 16. listopadu 2005
Stará verze, nepodporovaná:0,91 [23] 11. ledna 2006 "nový-admin"
Stará verze, nepodporovaná:0,95 [24] 29. července 2006 magické odstranění
Stará verze, nepodporovaná:0,96 [25] 23. března 2007 "newforms", testovací nástroje
Stará verze, nepodporovaná:1.0 [26] 3. září 2008 Stabilní API, admin nástroje jsou "odtržené" od těch hlavních, podpora unicode
Stará verze, nepodporovaná:1.1 [27] 29. července 2009 Agregace (v ORM), transakční testy
Stará verze, nepodporovaná:1.2 [28] 17. května 2010 Vícenásobná připojení db, CSRF , validátor modelu
Stará verze, nepodporovaná:1.3 [29] 23. března 2011 Pohledy založené na třídách, podpora statických souborů
Stará verze, nepodporovaná:1.4 LTS [30] 23. března 2012 Podpora pro časové pásmo, testy "v prohlížeči", šablony aplikací.
Stará verze, nepodporovaná:1,5 [31] 26. února 2013 Podpora Pythonu 3, konfigurovatelný uživatelský model
Stará verze, nepodporovaná:1.6 [32] 6. listopadu 2013 správa transakcí db, sdružování.
Stará verze, nepodporovaná:1.7 [33] 2. září 2014 Migrace, načítání a konfigurace aplikací.
Stará verze, nepodporovaná:1.8LTS [34] 1. dubna 2015 Vestavěná podpora pro několik šablon šablon. LTS s podporou do dubna 2018
Stará verze, nepodporovaná:1.9 [35] 1. prosince 2015 Automatická kontrola hesla, nový styl administrátorského rozhraní.
Stará verze, nepodporovaná:1.10 [36] 1. srpna 2016 Fulltextové vyhledávání pro PostgreSQL . Middleware nového stylu
Stará verze, nepodporovaná:1.11LTS [37] 4. dubna 2017 Nejnovější verze s podporou Pythonu 2.7. LTS s podporou do dubna 2020
Stará verze, nepodporovaná:2.0 [38] 2. prosince 2017 První verze pouze pro Python 3, zjednodušená syntaxe směrování URL, panel administrátora vhodný pro mobilní zařízení.
Stará verze, nepodporovaná:2.1 [39] 1. srpna 2018 Zobrazit oprávnění pro modely správce.
Stará verze, nepodporovaná:2.2 LTS [40] duben 2019 LTS s podporou do dubna 2022
Stará verze, nepodporovaná:3.0 2. prosince 2019 MariaDB, podpora ASGI
Stará verze, nepodporovaná:3.1 4. srpna 2020 Asynchronní zobrazení a middleware, JSONField pro všechny podporované databáze
Stará podporovaná verze:3,2 LTS duben 2021 LTS s podporou do dubna 2024
Stará podporovaná verze:4,0 prosinec 2021 Podpora prodloužena minimálně do dubna 2023
Současná verze: 4.1 3. srpna 2022 Asynchronní rozhraní k ORM
Legenda:Stará verze, není podporovánaStará podporovaná verzeSoučasná verzeTestovací verzebudoucí verze

Rozhodnutí

Na základě Django byla vyvinuta řada hotových řešení s bezplatnou licencí [41] , včetně internetových obchodů , redakčních systémů i úžeji zaměřených projektů.

Konfigurace serveru

Django byl navržen tak, aby běžel pod Apache s mod python a PostgreSQL jako databází.

S povolenou podporou WSGI může Django spouštět FastCGI , mod wsgi nebo SCGI na Apache a dalších serverech ( lighttpd , nginx ,…), uWSGI serverech .

V současné době může Django kromě PostgreSQL databáze pracovat s dalšími DBMS : MySQL , SQLite , Microsoft SQL Server , DB2 , Firebird , SQL Anywhere a Oracle .

Django přichází s vlastním vývojovým webovým serverem . Server automaticky detekuje změny ve zdrojových souborech projektu a restartuje se, čímž urychlí proces vývoje Pythonu . Zároveň však pracuje v jednovláknovém režimu a je vhodný pouze pro proces vývoje a ladění aplikace.

Hosting pro Django

Django lze nasadit na služby RedHat PaaS :

Django hostuje Google

Google App Engine Python [48] vám umožňuje používat k práci jakoukoli verzi Django.

Při práci s Django v Google App Engine Python 2.7 existují určité zvláštnosti.

  • Django ORM není kompatibilní s App Engine Datastore, což je úložiště NoSQL. To zase omezuje práci některých funkcí rámce, zejména vestavěného administrativního rozhraní [49] .
  • S Django můžete pracovat i přes Google cloud-sql [50] . To vám umožní využívat všechny funkce frameworku, stejně jako při práci s konvenčními relačními databázemi. [51]

Existuje komunitní verze Django-nonrel [52] přizpůsobená pro práci s nerelačními datovými úložišti, která vám umožňuje plně (pokud je to technicky možné) používat Django na platformě Google App Engine . A plugin django-dbindexer [53] dokonce umožňuje emulovat JOINy ​​v nerelačních datových úložištích.

Poznámky

  1. 12 django /README . GitHub . Získáno 8. září 2020. Archivováno z originálu dne 30. dubna 2020.
  2. Django FAQ . Staženo: 27. března 2019.
  3. Poznámky k vydání Django 4.0.7 .
  4. django/LICENCE . GitHub . Získáno 8. září 2020. Archivováno z originálu dne 12. února 2021.
  5. Co znamená „Django“ a jak se to vyslovuje? . Získáno 14. 5. 2009. Archivováno z originálu 10. 9. 2017.
  6. Django FAQ o MVC v Django . Získáno 14. 5. 2009. Archivováno z originálu 10. 9. 2017.
  7. Manic Weblog (Blog Ivana Sagalaeva) . Získáno 27. srpna 2020. Archivováno z originálu dne 30. října 2020.
  8. Co pohání Instagram: Stovky instancí, desítky technologií – Instagram Engineering . Datum přístupu: 6. ledna 2013. Archivováno z originálu 20. ledna 2013.
  9. Vítejte, Davide Cramere | Disqus: Oficiální blog . Datum přístupu: 6. ledna 2013. Archivováno z originálu 20. ledna 2013.
  10. Platforma MDN (Kuma) | MDN (nedostupný odkaz) . Datum přístupu: 6. ledna 2013. Archivováno z originálu 27. ledna 2013. 
  11. Práce na Graphite-webu . Získáno 27. srpna 2020. Archivováno z originálu dne 9. září 2020.
  12. Django FAQ . Získáno 14. 5. 2009. Archivováno z originálu 10. 9. 2017.
  13. DjangoBook. Kapitola 5. Práce s databází: Modely . Získáno 27. srpna 2020. Archivováno z originálu dne 30. září 2020.
  14. DjangoBook. Kapitola 6. Administrátorské rozhraní Django . Získáno 27. srpna 2020. Archivováno z originálu dne 26. září 2020.
  15. DjangoBook. Kapitola 3 Základy dynamické stránky . Získáno 27. srpna 2020. Archivováno z originálu dne 22. října 2020.
  16. DjangoBook. Kapitola 10. Šablona systémových rozšíření . Získáno 27. srpna 2020. Archivováno z originálu dne 30. září 2020.
  17. DjangoBook. Kapitola 13. Ukládání do mezipaměti . Získáno 27. srpna 2020. Archivováno z originálu dne 26. září 2020.
  18. DjangoBook. Kapitola 18. Internacionalizace . Získáno 27. srpna 2020. Archivováno z originálu dne 30. září 2020.
  19. Djangodoc.ru. Použití formulářů . Získáno 5. října 2020. Archivováno z originálu dne 7. října 2020.
  20. Proces vydání Djanga | Dokumentace Django | Django  (anglicky) . www.djangoproject.com _ Získáno 4. září 2021. Archivováno z originálu dne 9. října 2021.
  21. Poznámky k vydání | Dokumentace Django | Django  (anglicky) . www.djangoproject.com _ Získáno 4. září 2021. Archivováno z originálu dne 24. října 2021.
  22. „Introducing Django 0.90“ Archivováno 10. července 2017 na Wayback Machine . Weblog Django. Staženo 2. února 2013.
  23. „Vydáno Django 0.91“ Archivováno 10. července 2017 na Wayback Machine . Weblog Django. Staženo 2. února 2013.
  24. „Introducing Django 0.95“ Archivováno 10. července 2017 na Wayback Machine . Weblog Django. Staženo 2. února 2013.
  25. "Oznamujeme Django 0,96!" Archivováno 10. července 2017 na Wayback Machine . Weblog Django. Staženo 2. února 2013.
  26. "Vydán Django 1.0!" Archivováno 10. července 2017 na Wayback Machine . Weblog Django. Staženo 2. února 2013.
  27. „Vydáno Django 1.1“ Archivováno 10. července 2017 na Wayback Machine . Weblog Django. Staženo 2. února 2013.
  28. „Vydáno Django 1.2“ Archivováno 10. července 2017 na Wayback Machine . Weblog Django. Staženo 2. února 2013.
  29. „Django 1.3 uvolněn“ Archivováno 10. července 2017 na Wayback Machine . Weblog Django. Staženo 2. února 2013.
  30. „Django 1.4 uvolněno“ Archivováno 9. června 2017 na Wayback Machine . Weblog Django. Staženo 2. února 2013.
  31. „Vydáno Django 1.5“ Archivováno 10. července 2017 na webovém blogu Wayback Machine Django. Staženo 27. února 2013.
  32. „Django 1.6 uvolněno“ Archivováno 10. července 2017 na webovém blogu Wayback Machine Django. Staženo 6. listopadu 2013.
  33. „Vydáno Django 1.7“ Archivováno 10. července 2017 na webovém blogu Wayback Machine Django. Staženo 4. září 2014.
  34. „Vydáno Django 1.8“ Archivováno 10. července 2017 na webovém blogu Wayback Machine Django. Staženo 2. dubna 2015.
  35. „Vydáno Django 1.9“ Archivováno 7. června 2017 na webovém blogu Wayback Machine Django. Staženo 1. prosince 2015.
  36. „Vydáno Django 1.10“ Archivováno 17. června 2017 na webovém blogu Wayback Machine Django. Staženo 1. srpna 2016.
  37. „Vydáno Django 1.11“ Archivováno 10. června 2017 na webovém blogu Wayback Machine Django. Staženo 4. dubna 2017.
  38. „Vydáno Django 2.0“ Archivováno 1. dubna 2019 na webovém blogu Wayback Machine Django. Staženo 3. prosince 2017.
  39. „Vydáno Django 2.1“ Archivováno 1. dubna 2019 na webovém blogu Wayback Machine Django. Staženo 2. srpna 2018.
  40. Jak získat Django Archived 30. června 2017 na Wayback Machine Retrieved 2. srpna 2018.
  41. Open-Source projekty Django . Získáno 27. srpna 2020. Archivováno z originálu dne 2. července 2020.
  42. Ceny | OpenShift od Red Hat . Získáno 6. ledna 2013. Archivováno z originálu 23. ledna 2013.
  43. Rychlé nasazení aplikací Python a Django do cloudu s PaaS
  44. openshift / openshift-diy-py27-django (nedostupný odkaz - historie ) .  na githubu
  45. openshift/django-example . Archivováno z originálu 4. srpna 2014. na githubu
  46. Začínáme na Heroku s Pythonem . Staženo 10. 5. 2018. Archivováno z originálu 10. 5. 2018.
  47. Nasazení existujícího projektu Django na PythonAnywhere . Získáno 25. dubna 2017. Archivováno z originálu 26. dubna 2017.
  48. Google App Engine Python . Datum přístupu: 4. ledna 2013. Archivováno z originálu 20. ledna 2013.
  49. Knihovny třetích stran v Pythonu 2.7 – Google App Engine – Google Developers . Získáno 6. ledna 2013. Archivováno z originálu 16. ledna 2013.
  50. Google cloud-sql . Datum přístupu: 4. ledna 2013. Archivováno z originálu 15. ledna 2013.
  51. Podpora Django – Google App Engine – Google Developers . Datum přístupu: 6. ledna 2013. Archivováno z originálu 11. srpna 2014.
  52. Django-nonrel (downlink - historie ) . 
  53. django-dbindexer (downlink) . Získáno 27. srpna 2020. Archivováno z originálu dne 9. července 2020. 

Literatura

  • Holovatý A., Kaplan-Moss J. Django. Podrobný průvodce = Django. Definitivní průvodce / per. z angličtiny.- Petrohrad. : Symbol-Plus, 2010. - 560 s. - (High Tech). - ISBN 978-5-93286-187-5 .
  • W. Chan, P. Bissex, D. Forsier. Django. Vývoj webu v Pythonu = Vývoj webu v Pythonu s Django / per . z angličtiny. A. Kiselev. - Petrohrad. : Symbol-Plus, 2009. - 456 s. - (High Tech). - ISBN 978-5-93286-167-7 .
  • Dronov V. A. Django 3.0. Praxe vytváření webových stránek v Pythonu . - Petrohrad. : BHV-Petersburg, 2021. - 704 s. - ISBN 978-5-9775-6691-9 .

Odkazy