Pāriet uz saturu

Django (tīmekļa ietvars)

Vikipēdijas lapa
Django
Sākotnējais autors Adrians Holovatijs, Saimons Vilisons
Izstrādātājs Django Software Foundation
Sākotnējā versija 21 Jūlijs 2005; 20 gadi (2005-07-21)[1]
Stabilā versija 6.0 / 2025. gada 3. decembrī
Progr. valoda Python
Veids tīmekļa lietotņu ietvars
Licence BSD Licence[2]
Repozitorijs Labot šo Vikidatos
Tīmekļa vietne www.djangoproject.com

Django ir atvērtā pirmkoda tīmekļa lietotņu ietvars, kas sarakstīts Python programmēšanas valodā. Sākotnēji Django izstrādāja, lai pārvaldītu vairākus ziņu portālus, bet 2005. gada jūlijā atvēra tā pirmkodu ar BSD licences nosacījumiem. Django nosaukts džeza ģitārista Džango Reinharda vārdā.

Django ietvara galvenais mērķis ir atvieglot sarežģītu tīmekļa resursu radīšanu, kuru pamatā ir relāciju datu bāzu vadības sistēma. Galvenais uzsvars tiek likts uz komponenšu modularitāti un vēlreizēju izmantošanu, ātru izstrādi, kā arī DRY (Don't Repeat Yourself — 'neatkārtojies') principa ievērošanu. Django ir pilnībā uzrakstīts Python programmēšanas valodā — ieskaitot datu modeļus un konfigurācijas failus. Django ietver administrācijas saskarni, kas ļauj veidot, skatīt, labot un dzēst datubāzes ierakstus. Administrācijas saskarne tiek ģenerēta dinamiski, lietojot introspekciju, un to ir iespējams pielāgot.

Django ietvars izmantots tādās labi pazīstamās tīmekļa vietnēs kā Instagram,[3] Mozilla,[4] Disqus,[5] Bitbucket,[6] Nextdoor[7] un Clubhouse.[8]

Komponentes

[labot | labot pirmkodu]

Lai gan Django lieto savu terminoloģiju (piemēram, HTTP atbildes ģenerējošas funkcijas ir "skati"), tas kopumā atbilst MVC arhitektūrai. Tā sastāvā ietilpst:

  • objektu-relāciju kārtotājs (ORM, object-relational mapper), kas nodrošina saikni starp datu modeļiem (definētiem Python klašu formā) un relāciju DBVS ("Modelis"),
  • sistēma HTTP pieprasījumu apstrādei un HTTP atbilžu ģenerēšanai izmantojot šablonus ("Skats"),
  • uz regulārām izteiksēm bāzēts HTTP pieprasījumu maršrutētājs ("Kontrolieris").

Django standarta komplektācija ietver arī:

  • Vienkāršu, patstāvīgu tīmekļa serveri izstrādei un testēšanai.
  • Ievades formu izveides un pārbaudes sistēmu, kas no HTML formas saņemto informāciju sagatavo saglabāšanai datubāzē.
  • Šablonu sistēmu, kas izmanto pārmantojamības paradigmu, līdzīgi kā objektorientētā programmēšanā.
  • Kešošanas ietvaru, kas ļauj lietot vairākas kešošanas metodes.
  • Starpprogrammatūras klašu atbalstu, kas ļauj dažādās HTTP pieprasījuma apstrādes fāzēs piemērot pielāgotas funkcijas.
  • Iekšēju signalizēšanas sistēmu, kas ļauj lietotnes komponentēm savā starpā sūtīt un saņemt iepriekš definētu veidu signālus.
  • Lokalizācijas sistēmu, ieskaitot Django iebūvēto komponenšu lokalizāciju.
  • Serializācijas sistēmu, kas ļauj serializēt un deserializēt Django modeļu instances XML un JSON formātos.
  • Integrāciju ar Python iebūvēto vienībtestēšanas funkcionalitāti.

Iekļautā programmatūra

[labot | labot pirmkodu]

Django komplektācija ietver dažādas papildus lietotnes contrib pakotnē, tai skaitā:

  • Paplašināmu autentifikācijas sistēmu.
  • Automātiski veidotu administrācijas paneli.
  • Rīkus RSS un Atom barotņu izveidei.
  • Sites ietvaru, ar kura palīdzību viena Django instalācija var darbināt vairākas tīmekļa vietnes, katru ar atšķirīgu saturu un lietotnēm.
  • Rīkus Sitemaps ģenerēšanai.
  • Rīkus XSS, CSRF, SQL injekciju, paroļu uzlaušanas un citu tipisku draudu novēršanai. Lielākā daļa šo rīku ir aktīvi pēc noklusējuma.
  • Rīkus ģeogrāfisko informācijas sistēmu izstrādei.

Paplašināmība

[labot | labot pirmkodu]

Django projektus iespējams paplašināt, instalējot un pievienojot dažādu autoru uzturētas papildu komponentes. Ir pieejamas vairāk kā 5000 komponentes, kas Django standarta funkcionalitāti papildina ar risinājumiem lietotāju reģistrācijai, satura meklēšanai, API saskarnes nodrošināšanai, satura vadībai u.c.

Tīmekļa serveru un DBVS atbalsts

[labot | labot pirmkodu]

Django lietotnes var darbināt tīmekļa serveros, kas atbalsta ASGI vai WSGI protokolus. Django oficiāli atbalsta piecas DBVS: PostgreSQL, MariaDB, MySQL, SQLite un Oracle. Izmantojot mssql-django pakotni, iespējams lietot arī Microsoft SQL Server.

Versiju vēsture

[labot | labot pirmkodu]
Versija Datums[9] Atbalsts beidzas Pagarinātais atbalsts beidzas Piezīmes[10]
Unsupported: 0.90[11]16.11.2005.
Unsupported: 0.91[12]11.01.2006.
Unsupported: 0.95[13]29.07.2006.
Unsupported: 0.96[14]23.03.2007.
Unsupported: 1.0[15]03.09.2008.Unicode atbalsts
Unsupported: 1.1[16]29.07.2009.Aggregātfunkcijas
Unsupported: 1.2[17]17.05.2010.Vairāku DB savienojumu atbalsts, CSRF, modeļu validācija
Unsupported: 1.3[18]23.03.2011.23.03.2012.26.02.2013.Ar klasēm veidoti skati (class based views), staticfiles
Unsupported: 1.4 LTS[19]23.03.2012.26.02.2013.01.10.2015.Laika joslas
Unsupported: 1.5[20]26.02.2013.06.11.2013.02.09.2014.Python 3 atbalsts, aizvietojams User modelis
Unsupported: 1.6[21]06.11.2013.02.09.2014.01.04.2015.
Unsupported: 1.7[22]02.09.2014.01.04.2015.01.12.2015.Migrācijas
Unsupported: 1.8 LTS[23]01.04.2015.01.12.2015.01.04.2018.Vairāku šablonu bibliotēku atbalsts
Unsupported: 1.9[24]01.12.2015.01.08.2016.04.04.2017.Jauns noformējums administrācijas saskarnei
Unsupported: 1.10[25]01.08.2016.04.04.2017.02.12.2017.
Unsupported: 1.11 LTS[26]04.04.2017.02.12.2017.01.04.2020.Pēdējā versija, kas atbalsta Python 2.7
Unsupported: 2.0[27]02.12.2017.01.08.2018.01.04.2019.Pirmā versija, kas atbalsta tikai Python 3, administrācijas saskarne pielāgota mobilajām ierīcēm
Unsupported: 2.1[28]01.08.2018.01.04.2019.02.12.2019.
Unsupported: 2.2 LTS[29]01.04.2019.02.12.2019.11.04.2022.
Unsupported: 3.0[30]02.12.2019.03.08.2020.06.04.2020.ASGI atbalsts
Unsupported: 3.1[31]04.08.2020.06.04.2020.07.12.2021.
Unsupported: 3.2 LTS[32]06.04.2021.07.12.2021.01.04.2024.Python 3.11 atbalsts
Unsupported: 4.0[33]07.12.2021.03.08.2022.01.04.2023.
Unsupported: 4.1[34]03.08.2022.05.04.2023.01.12.2023.Atbalsts asinhronām ORM operācijām
Supported: 4.2 LTS[35]03.04.2023.04.12.2023.2026. g. aprīlisPsycopg 3 atbalsts
Unsupported: 5.0[36]04.12.2023.07.08.2024.02.04.2025.
Unsupported: 5.1[37]07.08.2024.02.04.2025.03.12.2025.Python 3.13 atbalsts
Supported: 5.2 LTS[38]02.04.2025.03.12.2025.2028. g. aprīlis
Latest version: 6.0[39][40]03.12.2025.2026. g. augusts2027. g. aprīlis
Apzīmējumi:
Atbalsts beidzies
Atbalstīts
Pašreizējā versija

Atsauces

[labot | labot pirmkodu]
  1. «Django FAQ». Skatīts: 2019. gada 27. marts.
  2. «django/LICENSE». GitHub. Skatīts: 2020. gada 8. septembris.
  3. «What Powers Instagram: Hundreds of Instances, Dozens of Technologies». Instagram Engineering.
  4. «Python». Mozilla Developer Network. Arhivēts no oriģināla, laiks: 2012. gada 8. februāris. Skatīts: 2016. gada 30. aprīlis.
  5. Matt Robenolt. «Scaling Django to 8 Billion Page Views». blog.disqus.com.
  6. «DjangoSuccessStoryBitbucket – Django». Arhivēts no oriģināla, laiks: 2016. gada 20. aprīlis. Skatīts: 2016. gada 30. aprīlis.
  7. «The anti-Facebook: one in four American neighborhoods are now using this private social network». The Verge. 2014. gada 18. augusts. Skatīts: 2016. gada 16. jūnijs.
  8. Luke Demi. «Reining in the thundering herd ⛈ Getting to 80% CPU utilization with Django». Clubhouse Blog (angļu), 2021. gada 15. augusts. Arhivēts no oriģināla, laiks: 2021. gada 15. augustā. Skatīts: 2021. gada 16. augusts.
  9. «Download Django - Django». www.djangoproject.com.
  10. «FAQ: Installation - Django documentation - Django». docs.djangoproject.com.
  11. "Introducing Django 0.90". Django weblog. Retrieved 2 February 2013.
  12. "Django 0.91 released". Django weblog. Retrieved 2 February 2013.
  13. "Introducing Django 0.95". Django weblog. Retrieved 2 February 2013.
  14. "Announcing Django 0.96!". Django weblog. Retrieved 2 February 2013.
  15. "Django 1.0 released!". Django weblog. Retrieved 2 February 2013.
  16. "Django 1.1 released". Django weblog. Retrieved 2 February 2013.
  17. "Django 1.2 released". Django weblog. Retrieved 2 February 2013.
  18. "Django 1.3 released". Django weblog. Retrieved 2 February 2013.
  19. "Django 1.4 released". Django weblog. Retrieved 2 February 2013.
  20. "Django 1.5 released" Django weblog. Retrieved 27 February 2013.
  21. "Django 1.6 released" Django weblog. Retrieved 6 November 2013.
  22. "Django 1.7 released" Django weblog. Retrieved 4 September 2014.
  23. "Django 1.8 released" Django weblog. Retrieved 2 April 2015.
  24. "Django 1.9 released" Django weblog. Retrieved 1 December 2015.
  25. "Django 1.10 released" Django weblog. Retrieved 1 August 2016.
  26. "Django 1.11 released" Django weblog. Retrieved 4 April 2017.
  27. "Django 2.0 released" Django weblog. Retrieved 3 December 2017.
  28. "Django 2.1 released" Django weblog. Retrieved 2 August 2018.
  29. Django 2.2 release notes. Retrieved 1 July 2019.
  30. Django 3.0 release notes. Retrieved 2 December 2019.
  31. «Django 3.1 release notes | Django documentation». Django Project (angļu). Skatīts: 2026-02-16.
  32. «Django 3.2 release notes». 2021. gada 6. aprīlis. Skatīts: 2021. gada 7. jūnijs.
  33. «Django 4.0 release notes». 2021. gada 7. decembris. Skatīts: 2022. gada 4. augusts.
  34. «Django 4.1 release notes». 2022. gada 3. augusts. Skatīts: 2022. gada 4. augusts.
  35. «Django 4.2 release notes». Skatīts: 2022. gada 4. augusts.
  36. «Django 5.0 release notes». 2023. gada 4. decembris. Skatīts: 2023. gada 4. decembris.
  37. «Django 5.1 release notes». 2024. gada 7. augusts. Skatīts: 2024. gada 8. augusts.
  38. «Django 5.2 release notes». 2025. gada 2. aprīlis. Skatīts: 2025. gada 23. februāris.
  39. «Django 6.0 Roadmap». December 2025. Skatīts: 2025. gada 23. februāris.
  40. «Django 6.0 release notes». Django Project (angļu). 2025. gada 3. decembris. Skatīts: 2025. gada 3. decembris.

Ārējās saites

[labot | labot pirmkodu]