Django on programmeerimiskeelePython põhine veebirakenduste loomiseks mõeldud vabavararaamistik[1]. Django on loodud21. juulil2005 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 ehkPython 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 tulnudPEP 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 raamistik on üles ehitatud MVC (model-view-controller) arhitektuuril. Raamistik sisaldab veebi mallide süsteemi, mis on mõeldudHTTP taotluste töötluseks, regulaaravaldistele üles ehitatud URL-i jagajat ja objekt-relatsioon kaardistajat, mis vahendab andmeid andmemudelite, mis on Djangos defineeritudPythoni klassidega ja relatsioonilise andmebaasi vahel[5].Lisaks on raamistikku ehitatud
testimisserver,
ankeetide validatsiooni ja genereerimise funktsionaalsus, et tõlgendada andmemudeleidHTML 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üsteemXML jaJSON keelteks,
võimekus laiendada Django baasmootorit,
Django raamistiku sisse ehitatud raamistik testimiseks[5].
Enne Django 3.0 versiooni, oli Django raamistik ehitatud WSGI printsiibile, pärast seda hakati implementeerima ASGI vaadete ehitust ning üleüldse asünkroonsust.[1]
Django rakendusi saab kasutadaApache,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äiteksLighttpd või Hiawatha. Samuti on Djangot võimalik rakendada teiste WSGI tüüpi veebiserveritega[6].