Django (web euskarria)

Django Python lengoaia bidez idatzitako web garapenerako framework irekia eta librea da. Hasieran Kansas estatuko Lawrence hiriko World Company enpresarentzat garatu zen, albisteetarako web orriak kudeatzeko helburuarekin. 2005eko uztailean kaleratu zen jendaurrean, BSD lizentziapean. Izena Django Reinhardt jazz gitarristatik hartu zuen.

Django-k Model–Template–View ( euskaraz,  Txantiloi-bistako eredua) arkitektura-eredua jarraitzen du, Model–View–Controller (euskaraz, Kontrolatzaile-bistako eredua) ereduaren antzekoa. 2008ko ekainean, Django Software Foundation (DSF) izeneko fundazio berriak hartu zuen proiektuaren ardura, irabazi-asmorik gabeko erakunde independente gisa.

Djangoren helburu nagusia da webgune konplexuak sortzea erraztea. Horretarako, berrerabilgarritasuna, osagaien konektagarritasuna eta hedagarritasuna sustatzen ditu, baita garapen azkarra eta «ez errepikatu zeure burua» (Don't Repeat Yourself, DRY) printzipioa ere. Python programazio lengoaia erabiltzen da framework osoan —konfigurazioetan, fitxategietan eta datu-ereduetan barne—, horrek koherentzia eta sinpletasuna eskaintzen ditu garapenean.

 Historia 
Django 2003ko udazkenean sortu zen, Lawrence Journal-World egunkariko web programatzaileak, Adrian Holovaty eta Simon Willison, Python erabiltzen hasi zirenean aplikazioak garatzeko. Jacob Kaplan-Moss Djangoren garapenean goiz kontratatu zuten, Willisonen praktikak amaitu baino laster. 2005eko uztailean BSD lizentziapean publikoki argitaratu zen. Frameworkari Django Reinhardt gitarra-jotzailearen izena jarri zioten. Holovaty erromani jazz gitarra-jotzailea da, eta Reinhardten musikak inspiratuta konposatzen du neurri batean. 2008ko ekainean, Django Software Foundation (DSF) izeneko fundazio berri bat sortuko zela iragarri zen, etorkizunean Django mantenduko zuena.

 Ezaugarriak 

 Osagaiak 
Bere nomenklatura propioa izan arren, hala nola, HTTP erantzunak sortzen dituzten objektu deigarriei "views" (euskaraz, bistak) izena jartzea, Django framework nagusia MVC arkitektura gisa ikus daiteke. Honako hauek osatzen dute: mapaketa objektu-erlazional bat (ORM, ingelesez) datu-ereduen (Python klase gisa definituta) eta datu-base erlazional baten artean bitartekotza egiten duena ("Model"); HTTP eskaerak prozesatzeko sistema batek, web txantiloi sistema batekin ("View"); eta adierazpen erregularretan oinarritutako URL banatzaile batek ("Controller"). 

Framework nagusian honako hauek ere sartzen dira:

 Web-zerbitzari arin eta autonomo bat garapenerako eta probarako.
 Formularioen serializazio eta balidazio sistema bat, HTML formularioen eta datu-basean gordetzeko egokiak diren balioen artean itzuli dezakeena.
 Txantiloi sistema bat, programazio objektu-orientatutik mailegutako herentzia kontzeptua erabiltzen duena.
 Cache framework bat, hainbat cache metodoetako edozein erabil dezakeena.
 Middleware klaseen laguntza, eskaeren prozesamenduaren hainbat fasetan esku hartu eta funtzio pertsonalizatuak gauzatu ditzaketenak.
 Barne banatzaile sistema bat, aplikazio baten osagaiek aurrez definitutako seinalearen bidez elkarri gertaerak jakinaraztea ahalbidetzen duena.
 Internazionalizazio sistema bat, Djangoren osagaien itzulpenak hainbat hizkuntzatara barne.
 Serializazio sistema bat, Django eredu instantzien XML eta/edo JSON irudikapenak ekoizteko eta irakurtzeko gai dena.
 Txantiloi motorraren gaitasunak zabaltzeko sistema bat.
 Pythonen integratutako unitate proba frameworkerako interfaze bat.

 Aplikazio paketeak 
Django banaketa nagusiak aplikazio kopuru bat ere biltzen ditu bere "contrib" paketean, besteak beste:

 Autentifikazio-sistema hedagarri bat.
 Administrazio-interfaze dinamikoa.
 RSS eta Atom sindikazio-jarioak sortzeko tresnak.
 "Sites" framework bat, Django instalazio bakar batek hainbat webgune exekutatzea ahalbidetzen duena, bakoitza bere eduki eta aplikazioekin.
 Webgune-mapak (ingelesez, sitemap) sortzeko tresnak.
 Integratutako arintzea cross-site request forgery, cross-site scripting, SQL injekzioa, pasahitzen haustura eta beste web eraso tipikoentzat, gehienak lehenespenez aktibatuta.
 Informazio geografiko sistemen (GIS) aplikazioak sortzeko framework bat.

 Hedagarritasuna 
Djangoren konfigurazio-sistemak hirugarrenen kodea proiektu arrunt batean konektatzea ahalbidetzen du, aplikazio berrerabilgarriaren konbentzioei jarraitzen badie. 5.000 pakete baino gehiago daude eskuragarri frameworkaren jatorrizko portaera zabaltzeko, jatorrizko tresnak jorratu ez zituen arazoetarako irtenbideak eskainiz: erregistroa, bilaketa, APIaren hornidura eta kontsumoa, CMS (euskaraz, Eduki-kudeaketako Sistema), etab.

Hedagarritasun hori, hala ere, barne osagaien mendekotasunek arintzen dute. Django filosofiak akoplamendu askea inplikatzen duen bitartean, txantiloi iragazkiak eta etiketak motor-inplementazio bat suposatzen dute, eta, auth eta admin aplikazio paketedunek barne, ORM erabiltzea eskatzen dute. Filtro edo aplikazio paketatu horiek ez dira derrigorrezkoak Django proiektu bat martxan jartzeko; hala ere, aplikazio berrerabilgarriek askotan horiek behar izaten dituzte. Horrek garatzaileak Django bere ekosistema estandarraren parte gisa gomendatzen eta mantentzen dituen osagai, liburutegi eta konfigurazioen multzoa erabiltzen jarraitzera bultzatzen ditu, ekosistemako aplikazioek eskaintzen dituzten onura guztiak baliatu ahal izateko.

 Zerbitzariaren antolakuntza 
Django ASGI edo WSGI bateragarriak diren web-zerbitzarietan exekutatu daiteke. Djangok ofizialki bost datu-base backend onartzen ditu: PostgreSQL, MySQL, MariaDB, SQLite, eta Oracle. Microsoft SQL Server mssql-djangorekin erabil daiteke.

 Bertsioen historia 
Django taldeak noizbehinka zenbait argitalpen "epe luzerako laguntza" (LTS, ingelesez) argitalpen gisa izendatuko ditu. LTS argitalpenek segurtasun eta datu-galera konponketak jasotzen dituzte denbora jakin batean, normalean 3 urte edo gehiago. Ondorengo argitalpenen erritmoa edozein dela ere, LTS bertsioek konponketak jasotzen jarraitzen dute.

 Esanahia Ez mantenduta Mantenduta Oraingo bertsioa Hurrengo bertsioak

 Bertsioak Kaleratze-Data  Oharrak 0.90  2005eko azaroaren 16a  Lehen bertsioa 0.91  2006ko urtarrilaren 11a  "new-administrator": administratzaile-interfazearen lehen berridazketa handia 0.95  2006ko uztailaren 29a  "magic removal": barneko API zaharra kendu eta arkitektura modernorantz lehen jauzia 0.96  2007ko martxoaren 23a  "newforms", testatzeko tresnak 1.0  2008ko irailaren 3a  APIen egonkortasuna, administratzailea askatuta, unicode 1.1  2009ko uztailaren 29a  Transakzioetan oinarritutako probak 1.2  2010eko maiatzaren 17a  Datu-base konexio anitzak, CSRF, modeloen balidazioa 1.3  2011ko martxoaren 23a  Klaseetan oinarritutako ikuspegiak, fitxategi estatikoak 1.4 LTS  2012ko martxoaren 23a  Ordu-eremuak, nabigatzaile-probak, aplikazio-txantiloiak 1.5  2013ko otsailaren 26a  Python 3rako euskarria, erabiltzaile-eredu konfiguragarria 1.6  2013ko azaroaren 6a  Malcolm Tredinnicken omenez; DB transakzioen kudeaketa, konexio biltegia 1.7  2014ko irailaren 2a  Migrazioak, aplikazio-karga eta konfigurazioa 1.8 LTS  2015eko apirilaren 1a  Txantiloi-motor anitzeko euskarria; epe luzeko laguntza 1.9  2015eko abenduaren 1a  Pasahitzen balidazio automatikoa; administratzaile-interfazearen estilo berriak 1.10  2017ko urtarrilaren 17a  PostgreSQL bilaketa osoa; middleware estilo berria; Unicode erabiltzaile-izenak 1.11  2017ko apirilaren 1a  Python 2.7rako azken euskarria 2.0  2017ko abenduaren 1a  Python 3rako lehen bertsioa 2.1  2018ko abuztuaren 1a  "bista" baimena ereduan 2.2 LTS  2019ko apirilaren 1a  Segurtasun-bertsioa 3.0  2019ko abenduaren 2a  ASGI euskarria 3.1  2020ko abuztuaren 4a  Bista eta middleware asinkronoak 3.2 LTS  2021eko apirilaren 6a  Erlazio anitzen aztarna; Python 3.11rako euskarria gehituta 4.0  2021eko abenduaren 7a  Funtzio eta API garbiketa ugariak 4.1  2022ko abuztuaren 3a  ORM interfaze-asinkronoaren lehen urratsak 4.2 LTS  2023ko apirilaren 3a  Psycopg 3rako euskarria 5.0  2023eko abenduaren 4a  Facet motako iragazkiak administrazioan; formulario-eremuak bistaratzeko txantiloi sinpleak 5.1  2024ko abuztuaren 7a  Python 3.13rako euskarria gehituta; PostgreSQL konexio-bideak gehitzea 5.2 LTS  2025eko apirilaren 2a  Lehen mailako gako konposatuetarako euskarria 6.0  2025eko abenduan  6.1  2026ko abuztuan  6.2 LTS  2027ko apirilean  7  2027ko abuztuan 
 Komunitatea 

 DjangoCon 
Django garatzaile eta erabiltzaileentzako urteroko konferentzia bat dago, "DjangoCon" izenekoa, 2008ko irailetik aurrera egiten dena. DjangoCon urtero egiten da Europan, maiatzean edo ekainean; beste bat Estatu Batuetan egiten da abuztuaren edo irailean, hiri desberdinetan.

 Estatu Batuak 

 2012ko DjangoCon Washington, D.C.-n egin zen, irailaren 3tik 8ra.
 2013ko DjangoCon Chicagon egin zen Hyatt Regency Hotel-ean eta konferentzia osteko Sprint-ak Digital Bootcamp-en, ordenagailu prestakuntza zentroan, antolatu ziren.
 2014ko DjangoCon US Portlandera itzuli zen, OR, abuztuaren 30etik irailaren 6ra.
 2015eko DjangoCon US Austin-en egin zen, TX, irailaren 6tik 11ra AT&T Executive Center-en.
 2016ko DjangoCon US Philadelphian egin zen, PA, Pennsylvania Unibertsitateko Wharton School-en, uztailaren 17tik 22ra.
 2017ko DjangoCon US Spokane-n egin zen, WA; 2018an DjangoCon US San Diegon egin zen, CA. DjangoCon US 2019 berriro San Diegon egin zen, CA, irailaren 22tik 27ra.
 DjangoCon 2021 birtualki egin zen eta 2022an, DjangoCon US San Diegora itzuli zen urriaren 16tik 21era. DjangoCon US 2023 urriaren 16tik 20ra egin zen Durham, NC kongresu zentroan eta DjangoCon US 2024 Durhamen ere egin zen irailaren 22tik 27ra.
 DjangoCon US 2025 irailaren 8tik 12ra egitea programatuta dago Chicagon, Illinois.

 Europa 

 DjangoCon Europa 2012 Zurichen antolatu zen, Suitzan.
 2017ko konferentzia Florentzian bildu zen, Italian.
 2018an, ekitaldia Heidelbergen egin zen, Alemanian.
 DjangoCon Europa 2019 Kopenhagen egin zen, Danimarkan.
 2020ko edizioa ekitaldi birtual gisa egin zen.
 2021ean, DjangoCon Europa birtualki egin zen COVID-19 pandemiagatik.
 2022ko konferentzia Porton antolatu zen, Portugalen.
 2023an, Edinburgh izan zen DjangoCon Europaren egoitza, Eskozian.
 2024an, konferentzia Vigon antolatu zen, Espainian.
 DjangoCon Europaren 2025eko edizioa Dublinen egin zen, Irlandan, apirilaren 23tik 27ra.

 Australia 
Django mini-konferentziak normalean urtero egiten dira Australian Python Conference 'PyCon AU'-ren parte gisa. Lehenago, mini-konferentzia hauek hemen egin dira:

 Hobart, Australia, 2013ko uztailan.
 Brisbane, Australia, 2014 eta 2015eko abuztuan.
 Melbourne, Australia 2016 eta 2017ko abuztuan.
 Sydney, Australia, 2018 eta 2019ko abuztuan.

 Afrika 
Afrikan egindako lehen DjangoCon konferentzia Tanzanian, Zanzibarren egin zen 2023ko azaroaren 6tik 11ra. Ekitaldiak 22 herrialdeetako 200 parte-hartzaile inguru jaso zituen, 103 emakume barne. Konferentziak 26 hitzaldi izan zituen software-garapena, hezkuntza, ibilbideak, irisgarritasuna eta nekazaritza bezalako gaiei buruz, maiz Afrika kontinenteko ikuspegiak nabarmenduz. Konferentziaren etorkizuneko edizioak planifikatuta daude, xehetasunak webgune ofizialean eskuragarri daudelarik.

 Komunitate taldeak eta programak 
Djangok erabiltzaile-taldeak eta topaketak sortu ditu mundu osoan. Talde aipagarri bat Django Girls erakundea da, Polonian hasi zena baina orain 91 herrialdetakoak dituena.

Beste ekimen bat Djangonaut Space da, Django ekosistemako kolaboratzaile berriei laguntza emateko mentoretza programa bat. Programak mentor esperimentatuak garatzaileekin parekatzen ditu Django eta bere komunitateari ekarpenik esanguratsuak egiten gidatzeko. Epe luzerako inplikazioa, inklusioita eta kode irekiko garapen kolaboratzailea azpimarratzen du.

 Beste hizkuntzekiko loturak 
Programatzaileek Djangoren txantiloi-motorraren diseinua Pythonetik beste hizkuntzetara igaro dute, plataforma anitzeko laguntza egokia eskainiz. Aukera horietako batzuk portu zuzenagoak dira; beste batzuek, Djangok inspiratuta eta haren kontzeptuak mantenduz, askatasuna hartzen dute Djangoren diseinutik aldentzeko, hala nola:

 Liquid Ruby-rako
 Template::Swig Perl-erako
 Twig PHP eta JavaScript-erako
 Jinja Python-erako
 ErlyDTL Erlang-erako

 Django web-euskarrian oinarritutako eduki-kudeketa sistemak 
Django framework gisa CMS edo eduki-kudeaketa sistema osoa eraikitzeko gai da. Hurrengo sistemak Djangon oinarritzen dira:

 Django CMS
 Wagtail
 Mezzanine
 Bibliografia 






 Erreferentziak 

 Kanpo estekak 
  Django Proiektua
  Django instalatzailea 
  Django komunitateko wiki eta kode biltegia
  Django Software Foundation

Kategoria:Python
Kategoria:Web framework-ak
Kategoria:Programazio softwarea
Kategoria:Open source softwarea