Django

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2022. február 13-án felülvizsgált verziótól ; az ellenőrzések 11 szerkesztést igényelnek .
Django
Típusú webes keretrendszer
Szerző Adrian Holovaty , Simon Willison
Fejlesztő Django Software Foundation [1]
Beírva Python [1]
Felület webes felület
Operációs rendszer platformközi
Első kiadás 2005. július 21 [2] ( 2005-07-21 )
legújabb verzió 4.0.7 ( 2022. augusztus 3. ) [3]
Állapot Aktív fejlesztésben
Engedély 3 záradékos BSD [4]
Weboldal djangoproject.com
 Médiafájlok a Wikimedia Commons oldalon

A Django (Django, ['dʒæŋɡoʊ] [5] ) egy ingyenes Python webalkalmazás - keretrendszer , amely az MVC tervezési mintáját [6] használja . A projektet a Django Software Foundation támogatja .

A Django webhely egy vagy több alkalmazásból épül fel, amelyek elidegeníthetők és csatlakoztathatók. Ez az egyik jelentős építészeti különbség ennek a keretrendszernek a többihez képest (például Ruby on Rails ). A keretrendszer egyik alapelve a SZÁRAZ ( Ne ismételd magad )  

Más keretrendszerekkel ellentétben a Django URL -kezelői kifejezetten reguláris kifejezések használatával vannak konfigurálva .

Az adatbázis kezeléséhez a Django saját ORM -jét használja , amelyben az adatmodellt Python osztályok írják le, és ebből generálják az adatbázissémát . [7]

Egy példa webalkalmazás, amely a „ Hello World !” feliratot mutatja:

innen: django.http import HttpResponse def hello ( kérés ): return HttpResponse ( "Hello world" )

Használat

A Django webes keretrendszert az Instagram [8] , a Disqus [9] , a Mozilla [10] , a The Washington Times , a Pinterest , a YouTube , a Google és mások használják.

A Django-t webkomponensként is használják projektekben:

  • Grafit [11]  – Grafikus és megfigyelő rendszer
  • A FreeNAS  egy tároló- és fájlmegosztó rendszer, stb. ingyenes megvalósítása.

Fejlesztők

  • Russell Keith - Magee 
  • Adrian Holovaty ( angol.  Adrian Holovaty ),
  • Simon Willison _  _
  • Jacob Kaplan  – Moss
  • Wilson Miner _  _

A fejlesztők kijelentik, hogy nem vállalják, hogy a projekt kidolgozása során szigorúan betartanak semmilyen módszertant, inkább azt teszik, ami számukra a leglogikusabbnak tűnik. [12]

Építészet

A Django architektúrája hasonló a „ Modell-View-Controller ”-hez (MVC). A klasszikus MVC modell vezérlője nagyjából megfelel a szintnek, amit a Django-ban View -nak hívnak, a  View megjelenítési logikáját pedig a Django-ban a Template szint valósítja meg . Emiatt a Django réteges architektúráját gyakran "Modell-Temlate-View"-nak (MTV) nevezik.  

A Django, mint hírmotor kezdeti fejlesztése jelentős hatást gyakorolt ​​annak architektúrájára: számos eszközt biztosít, amelyek elősegítik az információs weboldalak gyors fejlődését. Így például a fejlesztőnek nem kell vezérlőket és oldalakat létrehoznia az oldal adminisztratív részéhez, a Django rendelkezik egy beépített tartalomkezelő alkalmazással, amely bármely Django-n készült webhelyhez beépíthető, és több webhelyet is kezelhet egyszer ugyanazon a szerveren. Az adminisztrációs alkalmazás lehetővé teszi bármely webhelytartalom objektum létrehozását, módosítását és törlését, az összes végrehajtott művelet naplózását, valamint felületet biztosít a felhasználók és csoportok kezeléséhez (a jogok objektumról objektumra történő kiosztásával).

A Django disztribúció emellett tartalmaz alkalmazásokat a megjegyzésrendszerhez, RSS- és Atom -szindikációhoz , "statikus oldalakhoz" (amelyek vezérlők és nézetek írása nélkül is kezelhetők), URL-átirányítások stb.

Jellemzők

Néhány Django funkció:

  • ORM , egy adatbázis - hozzáférési API tranzakciótámogatással [13]
  • beépített adminisztrációs felület, [14] számos nyelven már elérhető fordításokkal
  • reguláris kifejezés URL-kezelő [15]
  • bővíthető sablonrendszer címkékkel és örökléssel [16]
  • gyorsítótár rendszer [17]
  • nemzetközivé válás [18]
  • csatlakoztatható alkalmazásarchitektúra, amely bármely Django webhelyre telepíthető
  • "általános nézetek" - vezérlő funkciósablonok
  • hitelesítés és hitelesítés, külső hitelesítő modulok csatlakoztatása: LDAP , OpenID , stb.
  • szűrőrendszer ("middleware") további kéréskezelők létrehozásához, például a disztribúcióban található szűrők gyorsítótárazáshoz, tömörítéshez, URL-normalizáláshoz és névtelen munkamenetek támogatásához
  • könyvtár az űrlapokkal való munkavégzéshez (öröklődés, űrlapok felépítése a meglévő adatbázismodell szerint) [19]
  • beépített automatikus dokumentáció a sabloncímkékről és adatmodellekről, amelyek az adminisztrációs alkalmazáson keresztül érhetők el

A keretrendszer egyes komponensei lazán kapcsolódnak egymáshoz, így könnyen helyettesíthetők hasonlókkal. Például a Mako vagy a Jinja használható a beépített sablonok helyett .

Ugyanakkor számos összetevő (például ORM) cseréje meglehetősen nehéz.

A keretrendszer magjába épített funkciókon kívül vannak olyan csomagok, amelyek bővítik a képességeit. A csomagok által biztosított funkciók, valamint a csomagok teljes listája könnyen nyomon követhető egy speciális forráson keresztül - www.djangopackages.com .

Kiadásuk verziói és kronológiája

A Django egyes kiadásai Long Term Support (LTS) kiadási állapotot kapnak [20] . Garantált ideig – jellemzően három évig – kapnak biztonsági és adatvesztés-megelőzési frissítéseket.

Változat Dátum [21] jegyzet
Régi verzió, nem támogatott:0,90 [22] 2005. november 16
Régi verzió, nem támogatott:0,91 [23] 2006. január 11 "új-admin"
Régi verzió, nem támogatott:0,95 [24] 2006. július 29 mágikus eltávolítás
Régi verzió, nem támogatott:0,96 [25] 2007. március 23 "új formák", tesztelő eszközök
Régi verzió, nem támogatott:1.0 [26] 2008. szeptember 3 Stabil API, az adminisztrációs eszközök "leválasztva" a főektől, unicode támogatás
Régi verzió, nem támogatott:1.1 [27] 2009. július 29 Aggregáció (ORM-ben), tranzakciós tesztek
Régi verzió, nem támogatott:1,2 [28] 2010. május 17 Több db kapcsolat, CSRF , modellellenőrző
Régi verzió, nem támogatott:1,3 [29] 2011. március 23 Osztály alapú nézetek, statikus fájlok támogatása
Régi verzió, nem támogatott:1,4 LTS [30] 2012. március 23 Időzóna, "böngészőben" tesztek, alkalmazássablonok támogatása.
Régi verzió, nem támogatott:1,5 [31] 2013. február 26 Python 3 támogatás, konfigurálható felhasználói modell
Régi verzió, nem támogatott:1,6 [32] 2013. november 6 db tranzakciókezelés, pooling.
Régi verzió, nem támogatott:1,7 [33] 2014. szeptember 2 Migrációk, betöltés és alkalmazáskonfiguráció.
Régi verzió, nem támogatott:1,8 LTS [34] 2015. április 1 Beépített támogatás több sablonozó motorhoz. LTS támogatással 2018 áprilisáig
Régi verzió, nem támogatott:1,9 [35] 2015. december 1 Automatikus jelszó-ellenőrzés, új admin felület stílus.
Régi verzió, nem támogatott:1,10 [36] 2016. augusztus 1 Teljes szöveges keresés a PostgreSQL -hez . Új stílusú köztes szoftver
Régi verzió, nem támogatott:1,11 LTS [37] 2017. április 4 A legújabb verzió Python 2.7 támogatással. LTS támogatással 2020 áprilisáig
Régi verzió, nem támogatott:2.0 [38] 2017. december 2 Az első Python 3 verzió, egyszerűsített URL-útválasztási szintaxis, mobilbarát adminisztrációs panel.
Régi verzió, nem támogatott:2.1 [39] 2018. augusztus 1 Az adminisztrátori modellekhez tartozó engedélyek megtekintése.
Régi verzió, nem támogatott:2,2 LTS [40] 2019. ápr LTS támogatással 2022 áprilisáig
Régi verzió, nem támogatott:3.0 2019. december 2 MariaDB, ASGI támogatás
Régi verzió, nem támogatott:3.1 2020. augusztus 4 Aszinkron nézet és köztes szoftver, JSONField az összes támogatott adatbázishoz
Régi támogatott verzió:3.2 LTS 2021. ápr LTS támogatással 2024 áprilisáig
Régi támogatott verzió:4.0 2021. dec Meghosszabbított támogatás legalább 2023 áprilisáig
Jelenlegi verzió: 4.1 2022. augusztus 3 Aszinkron interfész az ORM-hez
Legenda:Régi verzió, nem támogatottRégi támogatott verzióJelenlegi verzióTeszt verziójövőbeli verzió

Döntések

A Django alapján számos kész, ingyenes licenccel rendelkező megoldást [41] fejlesztettek ki , beleértve az online boltokat , tartalomkezelő rendszereket , valamint szűkebb körű projekteket.

Szerver konfiguráció

A Django-t úgy tervezték, hogy Apache alatt futjon mod python és PostgreSQL adatbázisként.

Engedélyezett WSGI- támogatással a Django futtathatja a FastCGI -t , a mod wsgi -t vagy az SCGI -t Apache-on és más szervereken ( lighttpd , nginx ,…), uWSGI -kiszolgálókon .

Jelenleg a PostgreSQL adatbázison kívül a Django más DBMS -ekkel is együttműködhet : MySQL , SQLite , Microsoft SQL Server , DB2 , Firebird , SQL Anywhere és Oracle .

A Django saját fejlesztésű webszerverrel érkezik . A szerver automatikusan észleli a projekt forrásfájljaiban bekövetkezett változásokat, és újraindul, felgyorsítva a Python fejlesztési folyamatot . Ugyanakkor egyszálú módban működik, és csak egy alkalmazás fejlesztési és hibakeresési folyamatára alkalmas.

Tárhely a Django számára

A Django telepíthető a RedHat PaaS szolgáltatásokra :

A Google által üzemeltetett Django

A Google App Engine Python [48] lehetővé teszi a Django bármely verziójának használatát a munkához.

A Google App Engine Python 2.7-es verziójában a Django használata során vannak furcsaságok.

  • A Django ORM nem kompatibilis az App Engine Datastore-val, amely egy NoSQL áruház. Ez viszont korlátozza a keretrendszer egyes funkcióinak, különösen a beépített adminisztrációs felületnek a munkáját [49] .
  • A Django-val a Google cloud-sql-n keresztül is dolgozhat [50] . Ez lehetővé teszi a keretrendszer összes funkciójának használatát, valamint a hagyományos relációs adatbázisokkal való munka során. [51]

Létezik a Django-nonrel [52] közösségi verziója, amely nem relációs adattárolókkal való együttműködésre lett adaptálva, amely lehetővé teszi a Django teljes körű (amennyire technikailag lehetséges) használatát a Google App Engine platformon . A django-dbindexer bővítmény [53] pedig még a JOIN-ok emulálását is lehetővé teszi nem relációs adattárolókban.

Jegyzetek

  1. 12 django /README . GitHub . Letöltve: 2020. szeptember 8. Az eredetiből archiválva : 2020. április 30.
  2. Django GYIK . Letöltve: 2019. március 27.
  3. Django 4.0.7 kiadási megjegyzések .
  4. django/LICENC . GitHub . Letöltve: 2020. szeptember 8. Az eredetiből archiválva : 2021. február 12.
  5. Mit jelent a "Django", és hogyan kell kiejteni? . Letöltve: 2009. május 14. Az eredetiből archiválva : 2017. szeptember 10.
  6. Django GYIK a Django MVC-vel kapcsolatban . Letöltve: 2009. május 14. Az eredetiből archiválva : 2017. szeptember 10.
  7. Manic Weblog (Ivan Sagalaev blogja) . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. október 30.
  8. Mi erősíti az Instagramot: Példányok százai, több tucat technológia – Instagram mérnöki . Hozzáférés dátuma: 2013. január 6. Az eredetiből archiválva : 2013. január 20.
  9. Üdvözlünk, David Cramer | Disqus: A hivatalos blog . Hozzáférés dátuma: 2013. január 6. Az eredetiből archiválva : 2013. január 20.
  10. Az MDN platform (Kuma) | MDN (nem elérhető link) . Hozzáférés időpontja: 2013. január 6. Az eredetiből archiválva : 2013. január 27. 
  11. Graphite-weben végzett munka . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 9.
  12. Django GYIK . Letöltve: 2009. május 14. Az eredetiből archiválva : 2017. szeptember 10.
  13. DjangoBook. 5. fejezet Munka az adatbázissal: Modellek . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 30.
  14. DjangoBook. 6. fejezet A Django adminisztrátori felülete . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 26.
  15. DjangoBook. 3. fejezet A dinamikus oldal alapjai . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. október 22.
  16. DjangoBook. 10. fejezet Sablonrendszer-bővítmények . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 30.
  17. DjangoBook. 13. fejezet Gyorsítótár . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 26.
  18. DjangoBook. 18. fejezet Nemzetközivé válás . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 30.
  19. Djangodoc.ru. Űrlapok használata . Letöltve: 2020. október 5. Az eredetiből archiválva : 2020. október 7..
  20. A Django kiadási folyamata | Django dokumentáció | Django  (angol) . www.djangoproject.com _ Letöltve: 2021. szeptember 4. Az eredetiből archiválva : 2021. október 9..
  21. Kiadási megjegyzések | Django dokumentáció | Django  (angol) . www.djangoproject.com _ Letöltve: 2021. szeptember 4. Az eredetiből archiválva : 2021. október 24.
  22. "Bemutatkozik a Django 0.90" Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
  23. „Megjelent a Django 0.91” Archiválva : 2017. július 10. a Wayback Machine -nál . Django weblog. Letöltve: 2013. február 2.
  24. "Bemutatkozik a Django 0.95" Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
  25. "Bejelentjük a Django 0.96-ot!" Archiválva : 2017. július 10. a Wayback Machine -nál . Django weblog. Letöltve: 2013. február 2.
  26. "Megjelent a Django 1.0!" Archiválva : 2017. július 10. a Wayback Machine -nál . Django weblog. Letöltve: 2013. február 2.
  27. „Megjelent a Django 1.1” Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
  28. „Megjelent a Django 1.2” Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
  29. „Megjelent a Django 1.3” Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
  30. „Megjelent a Django 1.4” archiválva 2017. június 9-én a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
  31. „Megjelent a Django 1.5” archiválva 2017. július 10-én a Wayback Machine Django weblogon. Letöltve: 2013. február 27.
  32. „Megjelent a Django 1.6” archiválva 2017. július 10-én a Wayback Machine Django weblogon. Letöltve: 2013. november 6.
  33. „Megjelent a Django 1.7” archiválva 2017. július 10-én a Wayback Machine Django weblogon. Letöltve: 2014. szeptember 4.
  34. „Megjelent a Django 1.8” archiválva 2017. július 10-én a Wayback Machine Django weblogon. Letöltve: 2015. április 2.
  35. „Megjelent a Django 1.9” archiválva 2017. június 7-én a Wayback Machine Django weblogon. Letöltve: 2015. december 1.
  36. „Megjelent a Django 1.10” archiválva 2017. június 17-én a Wayback Machine Django weblogon. Letöltve: 2016. augusztus 1.
  37. „Megjelent a Django 1.11” archiválva 2017. június 10-én a Wayback Machine Django weblogon. Letöltve: 2017. április 4.
  38. „Megjelent a Django 2.0” archiválva 2019. április 1-én a Wayback Machine Django weblogon. Letöltve: 2017. december 3.
  39. „Megjelent a Django 2.1” archiválva 2019. április 1-én a Wayback Machine Django weblogon. Letöltve: 2018. augusztus 2.
  40. Hogyan szerezhető be a Django archiválva 2017. június 30-án a Wayback gépen . Letöltve: 2018. augusztus 2.
  41. Nyílt forráskódú Django projektek . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. július 2.
  42. Árképzés | OpenShift a Red Hattől . Letöltve: 2013. január 6. Az eredetiből archiválva : 2013. január 23..
  43. Gyors Python és Django alkalmazások telepítése a felhőbe PaaS segítségével
  44. openshift / openshift-diy-py27-django (nem elérhető link - előzmények ) .  a githubon
  45. openshift/django-example . Az eredetiből archiválva: 2014. augusztus 4. a githubon
  46. A Heroku használatának megkezdése Pythonnal . Letöltve: 2018. május 10. Az eredetiből archiválva : 2018. május 10.
  47. Meglévő Django-projekt telepítése a PythonAnywhere-en . Letöltve: 2017. április 25. Az eredetiből archiválva : 2017. április 26..
  48. Google App Engine Python . Hozzáférés dátuma: 2013. január 4. Eredetiből archiválva : 2013. január 20.
  49. Harmadik féltől származó könyvtárak a Python 2.7-ben – Google App Engine – Google Developers . Letöltve: 2013. január 6. Az eredetiből archiválva : 2013. január 16..
  50. Google cloud-sql . Hozzáférés dátuma: 2013. január 4. Eredetiből archiválva : 2013. január 15.
  51. Django támogatás - Google App Engine - Google Developers . Hozzáférés dátuma: 2013. január 6. Az eredetiből archiválva : 2014. augusztus 11..
  52. Django-nonrel (downlink - történelem ) . 
  53. django-dbindexer (lefelé irányuló kapcsolat) . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. július 9. 

Irodalom

  • Holovaty A., Kaplan-Moss J. Django. Részletes útmutató = Django. A végleges útmutató a / per. angolból – Szentpétervár. : Symbol-Plus, 2010. - 560 p. - (Csúcstechnológia). - ISBN 978-5-93286-187-5 .
  • W. Chan, P. Bissex, D. Forsier. Django. Python webfejlesztés = Python webfejlesztés Django / per segítségével. angolról. A. Kiselev. - Szentpétervár. : Symbol-Plus, 2009. - 456 p. - (Csúcstechnológia). - ISBN 978-5-93286-167-7 .
  • Dronov V. A. Django 3.0. Webhelyek létrehozásának gyakorlata Pythonban . - Szentpétervár. : BHV-Pétervár, 2021. - 704 p. - ISBN 978-5-9775-6691-9 .

Linkek