Django (webový rámec) - Django (web framework)
Původní autoři | Adrian Holovaty, Simon Willison |
---|---|
Vývojáři | Softwarová nadace Django[1] |
První vydání | 21. července 2005[2] |
Stabilní uvolnění | 3.1.1 / 1. září 2020[3] |
Úložiště | Django úložiště |
Napsáno | Krajta[4] |
Velikost | 8.9 MB[5] |
Typ | Webový rámec[6] |
Licence | 3-klauzule BSD[7] |
webová stránka | www |
Django (/ˈdʒ…ŋɡoʊ/ JANG- bože; někdy stylizované jako django)[8] je Krajta -na základě zdarma a open-source webový rámec který následuje po zobrazení modelu-šablony (MTV) architektonický vzor.[9][10] Je udržován Softwarová nadace Django (DSF), americká nezávislá organizace založená jako 501 (c) (3) nezisková.
Primárním cílem Django je usnadnit vytváření složitých webových stránek založených na databázi. Rámec zdůrazňuje opakovaná použitelnost a „připojitelnost“ komponent, méně kódu, nízká vazba, rychlý vývoj a princip neopakuj se.[11] Python se používá v celém textu, dokonce i pro nastavení, soubory a datové modely. Django také poskytuje volitelnou správu vytvářet, číst, aktualizovat a mazat rozhraní, které je generováno dynamicky prostřednictvím introspekce a konfigurovat pomocí modelů pro správu.
Mezi dobře známé stránky, které používají Django, patří PBS,[12] Instagram,[13] Mozilla,[14] The Washington Times,[15] Diskuse,[16] Bitbucket,[17] a Další dveře.[18]
Dějiny
Django bylo vytvořeno na podzim roku 2003, kdy webové programátory na Lawrence Journal-World noviny, Adrian Holovaty a Simon Willison, začal k vytváření aplikací používat Python. Jacob Kaplan-Moss byl najat na začátku vývoje Djanga krátce před koncem stáže Simona Willisona.[19] To bylo propuštěno veřejně pod Licence BSD v červenci 2005. Rámec byl pojmenován po kytaristovi Django Reinhardt.[20]
V červnu 2008 bylo oznámeno, že nově vytvořený Softwarová nadace Django (DSF) by v budoucnu udržel Djanga.[21]
Funkce
Součásti
Přesto, že má svou vlastní nomenklaturu, jako je pojmenování volaných objektů generujících HTTP odpovědi "zobrazení",[9] základní rámec Django lze považovat za MVC architektura.[10] Skládá se z objektově-relační mapovač (ORM), která zprostředkovává mezi datové modely (definované jako třídy Pythonu) a relační databáze ("Model "), systém pro zpracování požadavků HTTP s a webový šablonový systém ("PROTIiew ") a a regulární výraz -na základě URL dispečer („Cřidič ").
V základním rámci jsou také zahrnuty:
- lehký a samostatný webový server pro vývoj a testování
- systém serializace a ověřování formulářů, který lze překládat mezi HTML formy a hodnoty vhodné pro uložení v databázi
- systém šablon, který využívá koncept dědictví vypůjčené z objektově orientovaného programování
- A ukládání do mezipaměti framework, který může používat kteroukoli z několika metod mezipaměti
- podpora pro middleware třídy, které mohou zasahovat v různých fázích zpracování požadavků a provádět vlastní funkce
- interní dispečerský systém, který umožňuje komponentám aplikace vzájemně komunikovat události prostřednictvím předdefinovaných signálů
- an internacionalizace systému, včetně překladů vlastních komponent Django do různých jazyků
- A serializace systém, který dokáže vytvářet a číst XML a / nebo JSON reprezentace instancí modelu Django
- systém pro rozšíření schopností šablony motoru
- rozhraní k vestavěnému Pythonu test jednotky rámec
Dodávané aplikace
Hlavní distribuce Django také sdružuje v balíčku „contrib“ řadu aplikací, včetně:
- rozšiřitelný autentizační systém
- dynamické administrativní rozhraní
- nástroje pro generování RSS a Atom syndikační kanály
- rámec „Weby“, který umožňuje jedné instalaci Django spouštět více webů, každý s vlastním obsahem a aplikacemi
- nástroje pro generování Soubory Sitemap Google
- integrované zmírnění pro padělání požadavku napříč weby, skriptování mezi weby, Vložení SQL, prolomení hesla a další typické webové útoky, většina z nich je ve výchozím nastavení zapnutá[22][23]
- rámec pro vytváření GIS aplikace
Rozšiřitelnost
Tato sekce příliš spoléhá na Reference na primární zdroje.Ledna 2015) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Konfigurační systém Django umožňuje připojení kódu třetí strany do běžného projektu za předpokladu, že následuje opakovaně použitelnou aplikaci[24] konvence. Více než 2 500 balíčků[25] jsou k dispozici k rozšíření původního chování rámce a poskytují řešení problémů, které původní nástroj neřešil: registrace, vyhledávání, API zajištění a spotřeba, CMS, atd.
Tato rozšiřitelnost je však zmírněna závislostmi interních komponent. Zatímco filozofie Django implikuje volné spojení,[26] filtry a značky šablon předpokládají implementaci jednoho enginu a aplikace v balíku auth i admin vyžadují použití interního ORM. Žádný z těchto filtrů nebo dodávaných aplikací není pro spuštění projektu Django povinný, ale opakovaně použitelné aplikace mají tendenci na nich záviset, což podporuje vývojáře, aby nadále používali oficiální zásobník, aby mohli plně těžit z ekosystému aplikací.
Uspořádání serveru
Django lze spustit ve spojení s Apache, Nginx použitím WSGI, Gunicorn nebo Čerokee pomocí flup (modul Python).[27][28] Django také zahrnuje schopnost spustit FastCGI server umožňující použití za jakýmkoli webovým serverem, který podporuje FastCGI, jako je Lighttpd nebo Hiawatha. Je také možné použít jiné WSGI -kompatibilní webové servery.[29] Django oficiálně podporuje pět databázových backendů: PostgreSQL, MySQL, MariaDB, SQLite, a Věštec. Microsoft SQL Server lze použít s django-mssql na Microsoft operační systémy,[30] zatímco podobně existují externí backendy pro IBM Db2,[31] SQL kdekoli[32] a Fénix.[33] Tady je Vidlička s názvem django-nonrel, který podporuje NoSQL databáze, jako např MongoDB a Google App Engine datové úložiště.[34]
Django lze také spustit ve spojení s Jython Na každém Java EE aplikační server, jako je GlassFish nebo JBoss. V tomto případě musí být nainstalován django-jython JDBC ovladače pro připojení k databázi, které také mohou poskytovat funkce pro kompilaci Djanga do souboru .war vhodného pro nasazení.[35]
Google App Engine zahrnuje podporu pro Django verze 1.x.x.[36] jako jeden ze svázaných rámců.
Historie verzí
Tým Django občas určí některá vydání jako vydání „dlouhodobé podpory“ (LTS).[37] U vydání LTS budou opravy zabezpečení a ztráty dat použity po zaručenou dobu, obvykle 3 a více let, bez ohledu na tempo vydání později.
Verze | datum[38] | Poznámky[39] |
---|---|---|
[40] | 0.9016. listopadu 2005 | |
[41] | 0.9111. ledna 2006 | „nový-administrátor“ |
[42] | 0.9529. července 2006 | "odstranění magie" |
[43] | 0.9623. března 2007 | „newforms“, testovací nástroje |
[44] | 1.03. září 2008 | Stabilita API, odpojený administrátor, unicode |
[45] | 1.129. července 2009 | Agregáty, testy založené na transakcích |
[46] | 1.217. května 2010 | Více připojení db, CSRF, ověření modelu |
[47] | 1.323. března 2011 | Pohledy založené na třídách, statické soubory |
[48] | 1,4 LTS23. března 2012 | Časová pásma, v testování prohlížeče, šablony aplikací. |
[49] | 1.526. února 2013 | Podpora Pythonu 3, konfigurovatelný uživatelský model |
[50] | 1.66. listopadu 2013 | Věnováno Malcolmovi Tredinnickovi, správě transakcí db, sdružování připojení. |
[51] | 1.72. září 2014 | Migrace, načítání a konfigurace aplikací. |
[52] | 1,8 LTS1. dubna 2015 | Nativní podpora pro více motorů šablon. Podpora skončila 1. dubna 2018 |
[53] | 1.91. prosince 2015 | Automatické ověření hesla. Nový styl pro administrátorské rozhraní. |
[54] | 1.101. srpna 2016 | Fulltextové vyhledávání pro PostgreSQL. New-style middleware. |
[55] | 1,11 LTS4. dubna 2017 | Poslední verze pro podporu Pythonu 2.7. Podpora skončila 1. dubna 2020 |
[56] | 2.02. prosince 2017 | První vydání pouze pro Python 3, zjednodušená syntaxe směrování adres URL, optimalizace pro mobilní zařízení. |
[57] | 2.11. srpna 2018 | Modelové oprávnění k „zobrazení“. |
[58] | 2.2 LTS1. dubna 2019 | Uvolnění zabezpečení. Podporováno nejméně do dubna 2022 |
[59] | 3.02. prosince 2019 | Podpora ASGI |
[60] | 3.14. srpna 2020 | Asynchronní zobrazení a middleware |
[61] | 3,2 LTSDuben 2021 | Rozšířená podpora do dubna 2024 |
[61] | 4.0Prosince 2021 | Rozšířená podpora do dubna 2023 |
[61] | 4.1Srpna 2022 | Rozšířená podpora do prosince 2023 |
[61] | 4,2 LTSDuben 2023 | Rozšířená podpora do dubna 2026 |
Stará verze Starší verze, stále udržovaná Nejnovější verze Nejnovější verze náhledu Budoucí vydání |
Vývojové nástroje s podporou Django
Pro vývoj projektu Django nejsou nutné žádné speciální nástroje, protože zdrojový kód lze upravovat jakýmkoli konvenčním textový editor Redakce se nicméně specializovala na programování může pomoci zvýšit produktivitu vývoje, např. s funkcemi jako zvýraznění syntaxe. Vzhledem k tomu, že Django je napsán v Pythonu, jsou v tomto ohledu výhodné textové editory, které znají syntaxi Pythonu.
Integrovaná vývojová prostředí (IDE) přidat další funkce, například ladění, refaktorování, a testování jednotky. Stejně jako u běžných editorů mohou být IDE s podporou pro Python prospěšné. Některá IDE, která se specializují na Python, navíc mají integrovanou podporu pro projekty Django, takže použití takového IDE při vývoji projektu Django může pomoci dále zvýšit produktivitu. Porovnání takových IDE Pythonu najdete v hlavním článku:
Společenství
Pro vývojáře a uživatele Django se koná pololetní konference s názvem „DjangoCon“, která se koná od září 2008. DjangoCon se koná každoročně v Evropě, v květnu nebo červnu;[62] zatímco další se koná ve Spojených státech v srpnu nebo v září v různých městech.[63] DjangoCon v roce 2012 se konal ve Washingtonu ve dnech 3. až 8. září. 2013 DjangoCon se konal v Chicagu v hotelu Hyatt Regency a po konferenci Sprinty byly umístěny v Digital Bootcamp, počítačovém školicím středisku.[64] 2014 DjangoCon USA se vrátil do Portland, NEBO od 30. srpna do 6. září. 2015 DjangoCon USA se konal v Austin, TX od 6. do 11. září v AT&T Executive Center. 2016 DjangoCon US se konal ve Filadelfii, PA v The Wharton School of University of Pennsylvania od 17. do 22. července.[65]2017 DjangoCon US se konal ve Spokane, WA;[66] v roce 2018 se DjangoCon US konal v San Diegu v Kalifornii.[67] DjangoCon US 2019 se opět konal v San Diegu v Kalifornii od 22. do 27. září.
Minikonference Django se obvykle každý rok konají jako součást australských akcí Konference v Pythonu 'PyCon AU'.[68] Dříve se tyto mini konference konaly v:
- Hobart, Austrálie, v červenci 2013,
- Brisbane, Austrálie, v srpnu 2014 a 2015,
- Melbourne, Austrálie v srpnu 2016 a 2017 a
- Sydney, Austrálie, v srpnu 2018 a 2019.
Django vytvořil skupiny uživatelů a setkání po celém světě,[69] nejpozoruhodnější skupina je Django dívky organizace, která začala v Polsku, ale nyní má akce v 91 zemích.[70][71]
Porty do jiných jazyků
Programátoři přenesli Djangoův návrh šablony motoru z Pythonu do jiných jazyků a poskytli slušnou podporu pro různé platformy. Některé z těchto možností jsou přímější porty; jiní, i když jsou inspirováni Djangem a zachovávají si jeho koncepty, si dovolují odchýlit se od Djangova designu:
- Kapalina pro Rubín[72]
- Šablona :: Swig pro Perl[73]
- Větvička pro PHP a JavaScript[74][75]
- Jinja pro Krajta[76]
- ErlyDTL pro Erlang[77]
CMS založené na Django Framework
Django jako framework je schopen vybudovat a CMS. Existuje však již několik CMS, které jsou postaveny na Django. Níže je uveden seznam několika CMS postavených na Django framework:
Viz také
Reference
- ^ „django / README“. GitHub. Citováno 8. září 2020.
- ^ „Django FAQ“. Citováno 27. března 2019.
- ^ https://github.com/django/django/releases
- ^ „django / README“. GitHub. Citováno 8. září 2020.
- ^ "Django Download". Citováno 7. srpna 2020.
- ^ „django / README“. GitHub. Citováno 8. září 2020.
- ^ „django / LICENCE“. GitHub. Citováno 8. září 2020.
- ^ "FAQ: Obecné - dokumentace k Django - Django". Citováno 30. dubna 2016.
- ^ A b "FAQ: Obecné - dokumentace k Django - Django". Citováno 30. dubna 2016.
- ^ A b Adrian Holovaty, Jacob Kaplan-Moss; et al. Kniha Django. Archivovány od originál dne 2. září 2016. Citováno 3. září 2013.
Django dostatečně sleduje tento vzor MVC, takže jej lze nazvat rámcem MVC
- ^ „Filozofie designu“. Django. Citováno 18. března 2018.
- ^ „20 kreativních webů se spuštěným Django“.
- ^ „What Powers Instagram: stovky instancí, desítky technologií“.
- ^ "Krajta". Mozilla Developer Network. Citováno 30. dubna 2016.
- ^ Opensource.washingtontimes.com. Citováno 2014-05-30.
- ^ „Škálování Djanga na 8 miliard zobrazení stránky“.
- ^ „DjangoSuccessStoryBitbucket - Django“. Archivovány od originál dne 20. dubna 2016. Citováno 30. dubna 2016.
- ^ „Anti-Facebook: jedna ze čtyř amerických čtvrtí nyní používá tuto soukromou sociální síť“. The Verge. Citováno 16. června 2016.
- ^ „Jaká je historie webového rámce Django? Proč byl popsán jako„ vyvinutý v redakci “?“. Citováno 18. října 2019.
- ^ „Představujeme Django“. Kniha Django. Citováno 29. července 2018.
- ^ „Oznámení o softwarové nadaci Django - Weblog - Django“. Citováno 30. dubna 2016.
- ^ „Zabezpečení v Django“. Projekt Django. Citováno 25. března 2013.
- ^ Socol, James (2012). „Nejlepší základní bezpečnostní postupy (zejména s Django)“. Citováno 25. března 2013.
- ^ „Co je to opakovaně použitelná aplikace? - dokumentace django-reusable-app-docs 0.1.0“. Citováno 30. dubna 2016.
- ^ „Balíčky Django“. Citováno 30. dubna 2016.
- ^ "Filozofie designu - dokumentace Django - Django". Citováno 30. dubna 2016.
- ^ Django dokumentace nasazení Archivováno 11. ledna 2012 v Wayback Machine
- ^ „Webový server Cherokee - kuchařka Nastavení Django - dokumentace Cherokee“. Citováno 30. dubna 2016.
- ^ Jak používat Django s Apache a mod_wsgi Archivováno 8. března 2013 v Wayback Machine. Oficiální dokumentace Django.
- ^ „Manfre / django-mssql / source / - bitbucket“. Citováno 30. dubna 2016.
- ^ ibmdb. „GitHub - ibmdb / python-ibmdb: automaticky exportováno z code.google.com/p/ibm-db“. GitHub. Citováno 30. dubna 2016.
- ^ „Google Code Archive - Long-term storage for Google Code Project Hosting“. Citováno 30. dubna 2016.
- ^ maxirobaina. "GitHub - maxirobaina / django-firebird: Firebird SQL backend pro django". GitHub. Citováno 30. dubna 2016.
- ^ „Django non-rel“. Citováno 30. dubna 2016.
- ^ plážový stroj. „GitHub - beachmachine / django-jython: Databázové backendy a rozšíření pro vývoj Django nad Jythonem“. GitHub. Citováno 30. dubna 2016.
- ^ Spouštění projektů Pure Django na Google App Engine. Code.google.com (01.11.2010). Citováno dne 5. prosince 2011.
- ^ "Proces vydání Django - dokumentace Django - Django". Citováno 30. dubna 2016.
- ^ „Stáhnout Django - Django“. www.djangoproject.com.
- ^ "FAQ: Instalace - dokumentace Django - Django". docs.djangoproject.com.
- ^ „Představujeme Django 0,90“. Django weblog. Vyvolány 2 February 2013.
- ^ „Vydán Django 0.91“. Django weblog. Vyvolány 2 February 2013.
- ^ „Představujeme Django 0,95“. Django weblog. Vyvolány 2 February 2013.
- ^ „Oznámení Django 0,96!“. Django weblog. Vyvolány 2 February 2013.
- ^ „Vydán Django 1.0!“. Django weblog. Vyvolány 2 February 2013.
- ^ „Vydán Django 1.1“. Django weblog. Vyvolány 2 February 2013.
- ^ „Vydáno Django 1.2“. Django weblog. Vyvolány 2 February 2013.
- ^ „Vydán Django 1.3“. Django weblog. Vyvolány 2 February 2013.
- ^ „Vydáno Django 1.4“. Django weblog. Vyvolány 2 February 2013.
- ^ „Vydáno Django 1.5“ Django weblog. Vyvolány 27 February 2013.
- ^ „Vydáno Django 1.6“ Django weblog. Vyvolány 6 November 2013.
- ^ „Vydán Django 1.7“ Django weblog. Vyvolány 4 September 2014.
- ^ „Vydáno Django 1.8“ Django weblog. Vyvolány 2 April 2015.
- ^ „Vydáno Django 1.9“ Django weblog. Vyvolány 1 December 2015.
- ^ „Vydán Django 1.10“ Django weblog. Vyvolány 1. srpna 2016.
- ^ „Vydán Django 1.11“ Django weblog. Citováno 4. dubna 2017.
- ^ „Vydáno Django 2.0“ Django weblog. Citováno 3. prosince 2017.
- ^ „Vydáno Django 2.1“ Django weblog. Citováno 2. srpna 2018.
- ^ Poznámky k verzi Django 2.2.3 Citováno 1. července 2019.
- ^ Poznámky k verzi Django 3.0 Citováno 2. prosince 2019.
- ^ Poznámky k verzi Django 3.1 Vyvolány 5 August 2020.
- ^ A b C d Stáhněte si Django
- ^ Řada DjangoCon EU Archivováno 4. března 2016 v Wayback Machine, Lanyrd.com
- ^ Série DjangoCon pro USA Archivováno 2. dubna 2016 na Wayback Machine, Lanyrd.com
- ^ „DjangoCon“. DjangoCon. Archivovány od originál dne 5. srpna 2012. Citováno 29. července 2012.
- ^ „DjangoCon“. DjangoCon. Citováno 1. prosince 2016.
- ^ „DjangoCon“. DjangoCon.
- ^ „DjangoCon“. DjangoCon.
- ^ DjangoCon AU. Djangocon.com.au. Citováno 2019-12-16.
- ^ https://www.meetup.com/topics/django/
- ^ „Django narozený v Lawrence, který přinesl revoluci ve stavbě webových stránek a oslavil své 10. výročí“. Lawrence Journal-World. 9. července 2015. Citováno 18. října 2019.
- ^ „Django Girls - začněte svou cestu programováním“. Citováno 21. října 2019.
- ^ Shopify. "- Liquid template language". Liquid template language.
- ^ „Template :: Swig - Perl interface to Django-inspiroval Swig templating engine. - metacpan.org“. metacpan.org.
- ^ Symfony. „Domů - Větvička - flexibilní, rychlý a bezpečný modul šablon PHP“. twig.sensiolabs.org.
- ^ „twigjs / twig.js“. GitHub.
- ^ „Vítejte - Jinja2 (Python Template Engine)“. jinja.pocoo.org.
- ^ „erlydtl / erlydtl“. GitHub.
- ^ „django CMS - správa podnikového obsahu pomocí Django - django CMS“. www.django-cms.org. Citováno 11. listopadu 2020.
Bibliografie
- Jaiswal, Sanjeev; Kumar, Ratan (22. června 2015), Učíme se vývoj webových aplikací Django (1. vyd.), Packt, str. 405, ISBN 1783984406
- Ravindrun, Arun (31. března 2015), Django Design Patterns and Best Practices (1. vyd.), Packt, str. 180, ISBN 1783986646
- Osborn, Tracy (květen 2015), Dobrý den, webová aplikace (1. vyd.), Tracy Osborn, str. 142, ISBN 0986365912
- Bendoraitis, Aidas (říjen 2014), Vývoj webu s kuchařkou Django (1. vyd.), Packt, str. 294, ISBN 178328689X
- Baumgartner, Peter; Malet, Yann (2015), Vysoce výkonný Django (1. vyd.), Lincoln Loop, str. 184, ISBN 1508748128
- Elman, Julia; Lavin, Mark (2014), Lehký Django (1. vyd.), O'Reilly Media, str. 246, ISBN 149194594X
- Percival, Harry (2014), Test-Driven Development s Pythonem (1. vyd.), O'Reilly Media, str. 480, ISBN 1449364829
Tento seznam je extrakcí z Aktuální knihy Django