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 .
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
- ↑ 12 django /README . GitHub . Letöltve: 2020. szeptember 8. Az eredetiből archiválva : 2020. április 30. (határozatlan)
- ↑ Django GYIK . Letöltve: 2019. március 27. (határozatlan)
- ↑ Django 4.0.7 kiadási megjegyzések . (határozatlan)
- ↑ django/LICENC . GitHub . Letöltve: 2020. szeptember 8. Az eredetiből archiválva : 2021. február 12. (határozatlan)
- ↑ Mit jelent a "Django", és hogyan kell kiejteni? . Letöltve: 2009. május 14. Az eredetiből archiválva : 2017. szeptember 10. (határozatlan)
- ↑ Django GYIK a Django MVC-vel kapcsolatban . Letöltve: 2009. május 14. Az eredetiből archiválva : 2017. szeptember 10. (határozatlan)
- ↑ Manic Weblog (Ivan Sagalaev blogja) . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. október 30. (határozatlan)
- ↑ 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. (határozatlan)
- ↑ Ü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. (határozatlan)
- ↑ 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. (határozatlan)
- ↑ Graphite-weben végzett munka . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 9. (határozatlan)
- ↑ Django GYIK . Letöltve: 2009. május 14. Az eredetiből archiválva : 2017. szeptember 10. (határozatlan)
- ↑ DjangoBook. 5. fejezet Munka az adatbázissal: Modellek . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 30. (határozatlan)
- ↑ DjangoBook. 6. fejezet A Django adminisztrátori felülete . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 26. (határozatlan)
- ↑ DjangoBook. 3. fejezet A dinamikus oldal alapjai . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. október 22. (határozatlan)
- ↑ DjangoBook. 10. fejezet Sablonrendszer-bővítmények . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 30. (határozatlan)
- ↑ DjangoBook. 13. fejezet Gyorsítótár . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 26. (határozatlan)
- ↑ DjangoBook. 18. fejezet Nemzetközivé válás . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. szeptember 30. (határozatlan)
- ↑ Djangodoc.ru. Űrlapok használata . Letöltve: 2020. október 5. Az eredetiből archiválva : 2020. október 7.. (határozatlan)
- ↑ 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..
- ↑ 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.
- ↑ "Bemutatkozik a Django 0.90" Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
- ↑ „Megjelent a Django 0.91” Archiválva : 2017. július 10. a Wayback Machine -nál . Django weblog. Letöltve: 2013. február 2.
- ↑ "Bemutatkozik a Django 0.95" Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
- ↑ "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.
- ↑ "Megjelent a Django 1.0!" Archiválva : 2017. július 10. a Wayback Machine -nál . Django weblog. Letöltve: 2013. február 2.
- ↑ „Megjelent a Django 1.1” Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
- ↑ „Megjelent a Django 1.2” Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
- ↑ „Megjelent a Django 1.3” Archiválva : 2017. július 10. a Wayback Machine -nél . Django weblog. Letöltve: 2013. február 2.
- ↑ „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.
- ↑ „Megjelent a Django 1.5” archiválva 2017. július 10-én a Wayback Machine Django weblogon. Letöltve: 2013. február 27.
- ↑ „Megjelent a Django 1.6” archiválva 2017. július 10-én a Wayback Machine Django weblogon. Letöltve: 2013. november 6.
- ↑ „Megjelent a Django 1.7” archiválva 2017. július 10-én a Wayback Machine Django weblogon. Letöltve: 2014. szeptember 4.
- ↑ „Megjelent a Django 1.8” archiválva 2017. július 10-én a Wayback Machine Django weblogon. Letöltve: 2015. április 2.
- ↑ „Megjelent a Django 1.9” archiválva 2017. június 7-én a Wayback Machine Django weblogon. Letöltve: 2015. december 1.
- ↑ „Megjelent a Django 1.10” archiválva 2017. június 17-én a Wayback Machine Django weblogon. Letöltve: 2016. augusztus 1.
- ↑ „Megjelent a Django 1.11” archiválva 2017. június 10-én a Wayback Machine Django weblogon. Letöltve: 2017. április 4.
- ↑ „Megjelent a Django 2.0” archiválva 2019. április 1-én a Wayback Machine Django weblogon. Letöltve: 2017. december 3.
- ↑ „Megjelent a Django 2.1” archiválva 2019. április 1-én a Wayback Machine Django weblogon. Letöltve: 2018. augusztus 2.
- ↑ Hogyan szerezhető be a Django archiválva 2017. június 30-án a Wayback gépen . Letöltve: 2018. augusztus 2.
- ↑ Nyílt forráskódú Django projektek . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. július 2. (határozatlan)
- ↑ Árképzés | OpenShift a Red Hattől . Letöltve: 2013. január 6. Az eredetiből archiválva : 2013. január 23.. (határozatlan)
- ↑ Gyors Python és Django alkalmazások telepítése a felhőbe PaaS segítségével
- ↑ openshift / openshift-diy-py27-django (nem elérhető link - előzmények ) . (határozatlan) a githubon
- ↑ openshift/django-example . Az eredetiből archiválva: 2014. augusztus 4. (határozatlan)a githubon
- ↑ A Heroku használatának megkezdése Pythonnal . Letöltve: 2018. május 10. Az eredetiből archiválva : 2018. május 10. (határozatlan)
- ↑ Meglévő Django-projekt telepítése a PythonAnywhere-en . Letöltve: 2017. április 25. Az eredetiből archiválva : 2017. április 26.. (határozatlan)
- ↑ Google App Engine Python . Hozzáférés dátuma: 2013. január 4. Eredetiből archiválva : 2013. január 20. (határozatlan)
- ↑ 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.. (határozatlan)
- ↑ Google cloud-sql . Hozzáférés dátuma: 2013. január 4. Eredetiből archiválva : 2013. január 15. (határozatlan)
- ↑ 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.. (határozatlan)
- ↑ Django-nonrel (downlink - történelem ) . (határozatlan)
- ↑ django-dbindexer (lefelé irányuló kapcsolat) . Letöltve: 2020. augusztus 27. Az eredetiből archiválva : 2020. július 9. (határozatlan)
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
A közösségi hálózatokon |
|
---|
Tematikus oldalak |
|
---|
Szótárak és enciklopédiák |
|
---|
Piton |
---|
Közösség |
|
---|
Megvalósítások |
|
---|
Egyéb |
|
---|