Django (tīmekļa ietvars)

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, Mozilla, Disqus, Bitbucket, Nextdoor un Clubhouse.

 Komponentes 
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 
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 
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 
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 
 Versija DatumsAtbalsts beidzasPagarinātais atbalsts beidzas Piezīmes scope="row" "Introducing Django 0.90". Django weblog. Retrieved 2 February 2013.      scope="row" "Django 0.91 released". Django weblog. Retrieved 2 February 2013.      scope="row" "Introducing Django 0.95". Django weblog. Retrieved 2 February 2013.      scope="row" "Announcing Django 0.96!". Django weblog. Retrieved 2 February 2013.      scope="row" "Django 1.0 released!". Django weblog. Retrieved 2 February 2013.      Unicode atbalsts scope="row" "Django 1.1 released". Django weblog. Retrieved 2 February 2013.      Aggregātfunkcijas scope="row" "Django 1.2 released". Django weblog. Retrieved 2 February 2013.      Vairāku DB savienojumu atbalsts, CSRF, modeļu validācija scope="row" "Django 1.3 released". Django weblog. Retrieved 2 February 2013.        Ar klasēm veidoti skati (class based views), staticfiles scope="row" "Django 1.4 released". Django weblog. Retrieved 2 February 2013.      Laika joslas scope="row" "Django 1.5 released" Django weblog. Retrieved 27 February 2013.     Python 3 atbalsts, aizvietojams User modelis scope="row" "Django 1.6 released" Django weblog. Retrieved 6 November 2013.      scope="row" "Django 1.7 released" Django weblog. Retrieved 4 September 2014.     Migrācijas scope="row" "Django 1.8 released" Django weblog. Retrieved 2 April 2015.     Vairāku šablonu bibliotēku atbalsts scope="row" "Django 1.9 released" Django weblog. Retrieved 1 December 2015.     Jauns noformējums administrācijas saskarnei scope="row" "Django 1.10 released" Django weblog. Retrieved 1 August 2016.     scope="row" "Django 1.11 released" Django weblog. Retrieved 4 April 2017.     Pēdējā versija, kas atbalsta Python 2.7 scope="row" "Django 2.0 released" Django weblog. Retrieved 3 December 2017.     Pirmā versija, kas atbalsta tikai Python 3, administrācijas saskarne pielāgota mobilajām ierīcēm scope="row" "Django 2.1 released" Django weblog. Retrieved 2 August 2018.     scope="row" Django 2.2 release notes. Retrieved 1 July 2019.     scope="row" Django 3.0 release notes. Retrieved 2 December 2019.    ASGI atbalsts scope="row"      scope="row"     Python 3.11 atbalsts scope="row"      scope="row"     Atbalsts asinhronām ORM operācijām scope="row"   2026. g. aprīlis Psycopg 3 atbalsts scope="row"    scope="row"    Python 3.13 atbalsts scope="row"    2028. g. aprīlis scope="row"    2026. g. augusts2027. g. aprīlis 

 Atsauces 

 Ārējās saites 



 DjangoSnippets — moduļi
 Google vēstkopa — Django lietotāji
 Google vēstkopa — Django attīstītāji
 Django meklētājs — meklē informāciju ar django tematiku saistītos resursos
 Django špikeris 
 DjangoSites

Kategorija:Brīvā un atvērtā pirmkoda programmatūra