Django (веб фрејмворк)

Django (/ˈæŋɡ/ JANG-goh)[1] је бесплатан веб фрејмворк отвореног кода, написаног у Пајтону, који прати МВЦ архитектуру (МВЦ) архитектонски образац.[2][3] Одржаван је од стране Софтверске Фондације Django, независне организације основане као непрофитну 501(c)(3).

Django
Лого
Лого
Django страница
Django страница
Програмер(и)Софтверска Фондација Django
Прво издање21.07.2005.
Репозиторијум Уреди на Википодацима
Написан уПајтон
ТипФрејмворк Веб Апликације
Лиценца3-clause BSD
Веб-сајтdjangoproject.com

Главни циљ Django-а је да олакша прављење комплексних веб сајтова базираних на базама података. Django ставља акценат на поновно коришћење и "прикључност" компоненти, рапидно брз развој и принцип "не понављај се". Пајтон је коришћен све време, чак и за подешавања, фајлове, и моделе података. Django такође нуди опциони административни create, read, update и delete интерфејс који је генерисан динамично кроз самопосматрање и подешен кроз моделе администратора.

Неки познати сајтови који користе Django укључују Pinterest,[4] Instagram,[5] Mozilla,[6] The Washington Times,[7] Disqus,[8] Public Broadcasting Service,[9] и Bitbucket.[10]

Историја уреди

Django  је рођен на јесен 2003, када су веб програмери у Lawrence Journal-World новинама, Адријан Холовати и Сајмон Вилисон, почели да користе Пајтон да праве апликације.[11] Избачен је јавно под BSD лиценцом у јулу 2005. Фрејмворк је именован по гитаристи Џанго Ренарт.[11]

У јуну 2008, најављено је да ће новоформирана Софтверска Фондација Django убудуће одржавати Django.[12]

Могућности уреди

Компоненте уреди

 
Скриншот интерфејса администратора за подешавање корисничких налога

Упркос томе што је имао сопствену номенклатуру, као што је именовање опозивних објеката који генеришу HTTP одговоре "прегледа",[2] главни Django фрејмворк може бити виђен као МВЦ.[3] Садржи објектно-релациони мапер (ОРМ) који посредује између модула података (дефинисаних као Пајтон класе) и релационих база података ("Модел"); систем за обраду HTTP захтева са системом веб шаблона ("Преглед") и диспечера веб адресе регуларног израза ("Контролор").

Такође укључени у фрејмворк су:

  • лагани и самостални веб сервер за развој и тестирање
  • форма серијализације и валидационог система који може да преводи између HTML форми и вредности погодних за складиште у бази података
  • систем шаблона који омогућава концепт наслеђа позајмљеног од објектно-оргјенисаног програмирања
  • Фрејмворк веб кеша који може да користи било који метод кеширања
  • подршка за класе посредног софтвера која може да интервенише током разних фаза обраде захтева и да изврши ручно направљене функције
  • унутрашњи диспечерски систем који дозвољава компонентама апликација да комуницирају између себе о догађајима преко претходно дефинисаних сигнала
  • Систем интернационализације и локализације, укључујући преводе компоненти Django-а у разне језике
  • Систем серијализације који може направити и читати XML и/или JSON репрезентације инстанце модела Django-а
  • систем за проширивање могућности шаблона
  • интерфејс до Пајтоновог уграђеног фрејмворка за тестирање јединице

Уграђене апликације уреди

Главна Django дистрибуција такође долази са многобројним уграђеним апликацијама у оквиру свог пакета, укључујући:

  • систем аутентификације са могућношћу проширивања
  • административни динамични интерфејс
  • алатке за генерисање RSS и Atom прилива информација
  • фрејмворк сајта који дозвољава једну Django инсталацију да буде покренута на више сајтова, при чему сваки има свој садржај и апликације
  • алатке за генерисање Google Sitemaps
  • уграђено смањење крос-сајтовских захтева фалсификата, cross-site scripting, SQL инјекцију, разбијање шифри и осталих типичних напада на вебу, од којих је највише њих већ укључено[13][14]
  • фрејмворк за прављење GIS апликација

Растегљивост уреди

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]

Историја верзија уреди

Значење
Red Неподржано
Yellow Подржано
Green Тренутна верзија
Version Date Notes
0.90[33] 16. нов. 2005.
0.91[34] 11. јан. 2006. "нови-admin"
0.95[35] 29. јул. 2006. "магично брисање"
0.96[36] 23. мар. 2007. "newforms", алатке за тестирање
1.0[37] 3. сеп. 2008. АПИ стабилност, одвојен admin, unicode
1.1[38] 29. јул. 2009. Агрегати, тестови трансакција
1.2[39] 17. мај. 2010. Вишеструке конекције базе података, CSRF, валидација модела
1.3[40] 23. мар. 2011. Преглед класа, статични фајлови
1.4[41] 23. мар. 2012. Временске зоне, тестирање у прегледачу, шаблони апликација [42]
1.5[43] 26. феб. 2013. Пајтон 3 подршка, подесив модел корисника
1.6[44] 6. нов. 2013. Посвећено Малколму Трединику, база података управљања трансакцијом, connection pooling.
1.7[45] 2. сеп. 2014. Миграције, учитавање апликација и конфигурације. Добијаће сигурносне исправке бар до октобра 2015.
1.8[46] 1. апр. 2015. Нативна подршка за вишеструке шаблоне. Издање са дугачком подршком, подржана бар до априла 2018

Види још уреди

Библиографија уреди

Ова листа је извучена из Current Django Books Архивирано на сајту Wayback Machine (14. новембар 2015)

Референце уреди

  1. ^ „What does "Django" mean, and how do you pronounce it?”. Docs.djangoproject.com. Приступљено 5. 1. 2016. 
  2. ^ а б „Django FAQ about MVC in Django”. Docs.djangoproject.com. Приступљено 5. 1. 2016. 
  3. ^ а б Adrian Holovaty, Jacob Kaplan-Moss; et al.
  4. ^ „Pinterest: What technologies were used to make Pinterest?”. Quora.com. Приступљено 5. 1. 2016. 
  5. ^ "What Powers Instagram: Hundreds of Instances, Dozens of Technologies". 
  6. ^ „Python | MDN”. Developer.mozilla.org. 9. 1. 2014. Архивирано из оригинала 08. 02. 2012. г. Приступљено 5. 1. 2016. 
  7. ^ Opensource.washingtontimes.com.
  8. ^ "Scaling Django to 8 Billion Page Views". 
  9. ^ "20 Creative Websites Running Django" Архивирано на сајту Wayback Machine (14. јун 2013). 
  10. ^ „DjangoSuccessStoryBitbucket – Django”. Code.djangoproject.com. Архивирано из оригинала 20. 04. 2016. г. Приступљено 5. 1. 2016. 
  11. ^ а б "Django's History" Архивирано на сајту Wayback Machine (2. јул 2015).
  12. ^ „Announcing the Django Software Foundation”. Djangoproject.com. 17. 6. 2008. Приступљено 5. 1. 2016. 
  13. ^ "Security in Django".
  14. ^ Socol, James (2012).
  15. ^ „What is a reusable app?”. Django-reusable-app-docs.readthedocs.org. Приступљено 5. 1. 2016. 
  16. ^ » more grids... „djangopackages.com, an open source package repository for the Django framework”. Djangopackages.com. Приступљено 5. 1. 2016. 
  17. ^ „Django design philosophies”. Docs.djangoproject.com. Архивирано из оригинала 04. 03. 2016. г. Приступљено 5. 1. 2016. 
  18. ^ „Cookbook: Setting up Django”. Cherokee-project.com. Приступљено 5. 1. 2016. 
  19. ^ How to use Django with Apache and mod_wsgi Архивирано на сајту Wayback Machine (8. март 2013).
  20. ^ „Manfre / django-mssql / source / — Bitbucket”. Bitbucket.org. Приступљено 5. 1. 2016. 
  21. ^ „ibmdb/python-ibmdb ¡ GitHub”. Code.google.com. Приступљено 5. 1. 2016. 
  22. ^ „sqlany-django - SQL Anywhere Database Backend for Django - Google Project Hosting”. Code.google.com. Приступљено 5. 1. 2016. 
  23. ^ „maxirobaina/django-firebird ¡ GitHub”. Github.com. Приступљено 5. 1. 2016. 
  24. ^ „Django non-rel”. Django non-rel. Приступљено 5. 1. 2016. 
  25. ^ „beachmachine/django-jython · GitHub”. Code.google.com. Приступљено 5. 1. 2016. 
  26. ^ Running Pure Django Projects on Google App Engine.
  27. ^ DjangoCon EU series Архивирано на сајту Wayback Machine (4. март 2016), Lanyrd.com
  28. ^ DjangoCon US series Архивирано на сајту Wayback Machine (2. април 2016), Lanyrd.com
  29. ^ "DjangoCon".
  30. ^ DjangoCon AU 2013 Архивирано на сајту Wayback Machine (11. јануар 2016).
  31. ^ „Django development IDEs discussion at Stackoverflow”. Stackoverflow.com. 29. 4. 2011. Приступљено 5. 1. 2016. 
  32. ^ „NetBeans Django Plugin”. Code.google.com. Приступљено 5. 1. 2016. 
  33. ^ "Introducing Django 0.90". Django weblog. Приступљено 2 February 2013.
  34. ^ "Django 0.91 released". Django weblog. Приступљено 2 February 2013.
  35. ^ "Introducing Django 0.95". Django weblog. Приступљено 2 February 2013.
  36. ^ "Announcing Django 0.96!". Django weblog. Приступљено 2 February 2013.
  37. ^ "Django 1.0 released!". Django weblog. Приступљено 2 February 2013.
  38. ^ "Django 1.1 released". Django weblog. Приступљено 2 February 2013.
  39. ^ "Django 1.2 released". Django weblog. Приступљено 2 February 2013.
  40. ^ "Django 1.3 released". Django weblog. Приступљено 2 February 2013.
  41. ^ "Django 1.4 released". Django weblog. Приступљено 2 February 2013.
  42. ^ „Django’s release process | Django documentation | Django”. Docs.djangoproject.com. Архивирано из оригинала 06. 03. 2016. г. Приступљено 5. 1. 2016. 
  43. ^ "Django 1.5 released" Django weblog. Приступљено 27 February 2013.
  44. ^ "Django 1.6 released" Django weblog. Приступљено 6 November 2013.
  45. ^ "Django 1.7 released" Django weblog. Приступљено 4 September 2014.
  46. ^ "Django 1.8 released" Django weblog. Приступљено 2 April 2015.

Спољашње везе уреди