Django (raamistik)

Django on programmeerimiskeele Python põhine veebirakenduste loomiseks mõeldud vabavararaamistik [1]. Django on loodud 21. juulil 2005 ning hallatud MTÜ Django Software Foundation poolt [1]. Peamine Django raamistiku eesmärk on muuta korduvad ja aeganõudvad veebiarenduse aspektid kiiresti läbitavaks ja komplekssed andmebaasipõhised lehed lihtsasti hallatavaks [2]. Django raamistik on üles ehitatud järgmiste disainiprintsiipide järgi [2]:

  • lahtiühendatavus ehk raamistiku kihtide iseseisvus ja teadmatus üksteisest;
  • vähem koodi ehk Python keele dünaamilise võimekuse ära kasutamine;
  • kiire arendus ehk eesmärk muuta korduvad ja aeganõudvad tööd kiiresti läbitavaks;
  • ära korda end ehk arusaam, et iga kontsept ja andmetükk peaks elama ainult ühes kohas;
  • selgesõnaline on parem kui kaudne ehk Pythonist tulnud PEP 20 disainipõhimõtte järgimine, mis tähendab, et kood ei tohiks teha liialt maagiat;[3]
  • järjepidevus ehk terve raamistiku nii madala taseme kui ka kõrge taseme kood peab olema üles ehitatud samaväärse järjepidevusega.
Django 3.0 maandumisleht

Mõned tuntumad Eesti veebirakendused, mis on Djangole ehitatud, on Ecoop, Novastar, PMC, Waybiller [4].

Funktsionaalsus muuda

Django raamistik on üles ehitatud MVC (model-view-controller) arhitektuuril. Raamistik sisaldab veebi mallide süsteemi, mis on mõeldud HTTP taotluste töötluseks, regulaaravaldistele üles ehitatud URL-i jagajat ja objekt-relatsioon kaardistajat, mis vahendab andmeid andmemudelite, mis on Djangos defineeritud Pythoni klassidega ja relatsioonilise andmebaasi vahel [5]. Lisaks on raamistikku ehitatud

  • testimisserver,
  • ankeetide validatsiooni ja genereerimise funktsionaalsus, et tõlgendada andmemudeleid HTML ankeetideks,
  • vahemälu süsteem mitmekülgseks kasutuseks nagu näiteks sessiooniinfo hoiustamiseks,
  • tugi vahefunktsioonidele ja vaheklassidele, et sekkuda kolmanda osapoole funktsionaalsusega erinevatel andmeedastus- ja töötlusetappidel,
  • Django raamistiku sisene jagaja, mis lubab erinevatel raamistiku komponentidel suhelda üksteisega ette defineeritud signaalidega,
  • mitmekeelne tõlkesüsteem,
  • andmebaasi ja Django mudelite tõlkesüsteem XML ja JSON keelteks,
  • võimekus laiendada Django baasmootorit,
  • Django raamistiku sisse ehitatud raamistik testimiseks [5].

Enne Django 3.0 versiooni, oli Django raamistik ehitatud WSGI printsiibile, peale mida hakati implementeerima ASGI vaadete ehitust ning üleüldse asünkroonsust [1].

Django rakenduste serverid muuda

Django veebirakenduste raamistik toetab ametlikult viit andmebaasi [5]:

Django rakendusi saab kasutada Apache, Nginxi, Gunicorni, Cherokee ja flupi serveritega. Django sisaldab võimalust kasutada ka FastCGI serverit, lubades kasutust iga veebi serveri taga, mis kasutab FastCGI-d nagu näiteks Lighttpd või Hiawatha. Samuti on Djangot võimalik rakendada teiste WSGI tüüpi veebiserveritega [6].

Viited muuda