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

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

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

Главни циљ 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.

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