Django (/ˈdʒæŋɡoʊ/JANG-goh)[1] је бесплатан веб фрејмворк отвореног кода, написаног у Пајтону, који прати МВЦ архитектуру (МВЦ) архитектонски образац.[2][3] Одржаван је од стране Софтверске Фондације Django, независне организације основане као непрофитну 501(c)(3).
Главни циљ Django-а је да олакша прављење комплексних веб сајтова базираних на базама података. Django ставља акценат на поновно коришћење и "прикључност" компоненти, рапидно брз развој и принцип "не понављај се". Пајтон је коришћен све време, чак и за подешавања, фајлове, и моделе података. Django такође нуди опциони административни create, read, update и delete интерфејс који је генерисан динамично кроз самопосматрање и подешен кроз моделе администратора.
Упркос томе што је имао сопствену номенклатуру, као што је именовање опозивних објеката који генеришу HTTP одговоре "прегледа",[2] главни Django фрејмворк може бити виђен као МВЦ.[3] Садржи објектно-релациони мапер (ОРМ) који посредује између модула података (дефинисаних као Пајтон класе) и релационих база података ("Модел"); систем за обраду HTTP захтева са системом веб шаблона ("Преглед") и диспечера веб адресерегуларног израза ("Контролор").
Такође укључени у фрејмворк су:
лагани и самостални веб сервер за развој и тестирање
форма серијализације и валидационог система који може да преводи између HTML форми и вредности погодних за складиште у бази података
Систем серијализације који може направити и читати XML и/или JSON репрезентације инстанце модела Django-а
систем за проширивање могућности шаблона
интерфејс до Пајтоновог уграђеног фрејмворка за тестирање јединице
Уграђене апликације
Главна Django дистрибуција такође долази са многобројним уграђеним апликацијама у оквиру свог пакета, укључујући:
систем аутентификације са могућношћу проширивања
административни динамични интерфејс
алатке за генерисање RSS и Atom прилива информација
фрејмворк сајта који дозвољава једну Django инсталацију да буде покренута на више сајтова, при чему сваки има свој садржај и апликације
алатке за генерисањеGoogle Sitemaps
уграђено смањење крос-сајтовских захтева фалсификата, cross-site scripting, SQL инјекцију, разбијање шифри и осталих типичних напада на вебу, од којих је највише њих већ укључено[13][14]
Django-ов конфигурациони систем дозвољава код трећих лица да буде укључен у регуларни пројекат, имајући у обзир да прати конвенције апликације која је поново коришћена[15]#cite_note-18 . Више од 2500 пакета[16] је доступно да прошири понашање оригиналног фрејмворка, доносећи решења за проблеме коју оригинална алатка није могла: регистрација, претрага, АПИ одредба и потрошња, CMS, итд.
Ова растегљивост је, међутим, смањена интерним зависностима компоненти. Док Django филозофија имплицира лабаве везе,[17] филтери шаблона и тагова сматрају једну имплементацију, и оба auth и admin уграђене апликације захтевају коришћење ОРМ-а. Ниједан од ових филтера или уграђених апликација су обавезне за покретање Django пројекта, али обновљиве апликације су склоне да од њих зависе, охрабрујући програмере да наставе са коришћењем званичних стекова у реду да би имали пуне бенефиције од екосистема апликација.
Серверски аранжмани
Django може бити покренут у везнику са Apache, NGINX коришћењем WSGI, Gunicorn, или Cherokee коришћењем (модул Пајтона).[18] Django такође укључује могућност покретања FastCGI сервера, омогућавајући коришћење ван било ког веб сервера који подржава FastCGI, као што је Lighttpd или Hiawatha. Такође је могуће користити друге WSGI-компатибилне веб сервере.[19] Django званично подржава четири бек-енд базе података: PostgreSQL, MySQL, SQLite, и Oracle. Microsoft SQL Server може бити коришћен са django-mssql на Мајкрософт оперативним системима,[20] док слични спољни бек-ендови постоје за IBM DB2,[21]SQL Anywhere[22] и Firebird.[23] Постоји форк назван django-nonrel, који подржава NoSQL базе података, као што су MongoDB и Google App Engine продавница података.[24]
Django такође може бити покренут у вези са Jython-ом на било ком Java EE апликационом серверу као што је GlassFish или JBoss. У овом случају django-jython мора бити инсталиран да би омогућио JDBC драјвере за повезивање базе података, који такође омогућава функционалност да се Django компајлује у одговарајући.war за развој .[25]
Google App Engine укључује подршку за Django верзију 1.x.x[26] као једну од уграђених фрејмворкова.
Заједница
DjangoCon
Постоји семи-годишња конференција за Django програмере и кориснике, названа "DjangoCon", која се одржава од септембра 2008. DjangoCon се одржава годишње у Европи, у мају или јуну;[27] док друга се одржава у САД у септембру, обично у Портланду.[28] 2012 DjangoCon се одржао у Вашингтону од 3. до 8. септембра. 2013 DjangoCon се одржао у Чикагу у Hyatt Regency хотелу.[29]
Django мини-конференције су одржане у Хобарту, Аустралији у јулу 2013. и у Брисбејну, Аустралији у августу 2014.[30]
Други језици
Django-ов шаблонски дизајн је пребачен на друге језике поред Пајтона, пружајући добру крос-платформску подршку. Неке од ових опција су више директни портови, док су други инспирисани Django-ом, задржавајући своје концепте при чему се више труди у одступању од дизајна Django-а.
Док већина Django програмера користи уређивач текста као што су Vim, Emacs, TextMate или Sublime са Django Bundle за њихове пројекте, остали преферирају пајтон-специфичне алатке које доприносе дебаговању, преправљању, тестирању јединица, итд.[31]