Django (веб фрејмворк)
Django (/ˈdʒæŋɡoʊ/ JANG-goh)[1] је бесплатан веб фрејмворк отвореног кода, написаног у Пајтону, који прати МВЦ архитектуру (МВЦ) архитектонски образац.[2][3] Одржаван је од стране Софтверске Фондације Django, независне организације основане као непрофитну 501(c)(3).
![]() Лого | |
![]() Django страница | |
Програмер(и) | Софтверска Фондација Django |
---|---|
Прво издање | 21.07.2005. |
Спремиште | |
Написан у | Пајтон |
Тип | Фрејмворк Веб Апликације |
Лиценца | 3-clause BSD |
Веб-сајт | djangoproject |
Главни циљ 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-а.
- Swig за JavaScript
- Liquid за Ruby
- Template::Swig за Perl
- Twig Архивирано на сајту Wayback Machine (9. јул 2017) за PHP
- Jinja за Python
Интегрисана окружења програмирања за Пајтон Уреди
Док већина Django програмера користи уређивач текста као што су Vim, Emacs, TextMate или Sublime са Django Bundle за њихове пројекте, остали преферирају пајтон-специфичне алатке које доприносе дебаговању, преправљању, тестирању јединица, итд.[31]
- Anjuta
- Aptana Studio са интегрисаним PyDev
- Codenvy
- Eclipse са PyDev
- Eric Python IDE
- IntelliJ IDEA са Django прикључком, омогућава функционалност сличну PyCharm
- Koding
- Komodo IDE
- Microsoft Visual Studio са Python Tools for Visual Studio
- MonoDevelop
- NetBeans са Django прикључком[32]
- Ninja IDE
- PyCharm
- PyScripter
- Spyder (софтвер)
- SourceLair
- Wing IDE
Историја верзија Уреди
Значење | |
---|---|
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)
Референце Уреди
- ^ „What does "Django" mean, and how do you pronounce it?”. Docs.djangoproject.com. Приступљено 5. 1. 2016.
- ^ а б „Django FAQ about MVC in Django”. Docs.djangoproject.com. Приступљено 5. 1. 2016.
- ^ а б Adrian Holovaty, Jacob Kaplan-Moss; et al.
- ^ „Pinterest: What technologies were used to make Pinterest?”. Quora.com. Приступљено 5. 1. 2016.
- ^ "What Powers Instagram: Hundreds of Instances, Dozens of Technologies".
- ^ „Python | MDN”. Developer.mozilla.org. 9. 1. 2014. Архивирано из оригинала 08. 02. 2012. г. Приступљено 5. 1. 2016.
- ^ Opensource.washingtontimes.com.
- ^ "Scaling Django to 8 Billion Page Views".
- ^ "20 Creative Websites Running Django" Архивирано на сајту Wayback Machine (14. јун 2013).
- ^ „DjangoSuccessStoryBitbucket – Django”. Code.djangoproject.com. Архивирано из оригинала 20. 04. 2016. г. Приступљено 5. 1. 2016.
- ^ а б "Django's History" Архивирано на сајту Wayback Machine (2. јул 2015).
- ^ „Announcing the Django Software Foundation”. Djangoproject.com. 17. 6. 2008. Приступљено 5. 1. 2016.
- ^ "Security in Django".
- ^ Socol, James (2012).
- ^ „What is a reusable app?”. Django-reusable-app-docs.readthedocs.org. Приступљено 5. 1. 2016.
- ^ » more grids... „djangopackages.com, an open source package repository for the Django framework”. Djangopackages.com. Приступљено 5. 1. 2016.
- ^ „Django design philosophies”. Docs.djangoproject.com. Архивирано из оригинала 04. 03. 2016. г. Приступљено 5. 1. 2016.
- ^ „Cookbook: Setting up Django”. Cherokee-project.com. Приступљено 5. 1. 2016.
- ^ How to use Django with Apache and mod_wsgi Архивирано на сајту Wayback Machine (8. март 2013).
- ^ „Manfre / django-mssql / source / — Bitbucket”. Bitbucket.org. Приступљено 5. 1. 2016.
- ^ „ibmdb/python-ibmdb ¡ GitHub”. Code.google.com. Приступљено 5. 1. 2016.
- ^ „sqlany-django - SQL Anywhere Database Backend for Django - Google Project Hosting”. Code.google.com. Приступљено 5. 1. 2016.
- ^ „maxirobaina/django-firebird ¡ GitHub”. Github.com. Приступљено 5. 1. 2016.
- ^ „Django non-rel”. Django non-rel. Приступљено 5. 1. 2016.
- ^ „beachmachine/django-jython · GitHub”. Code.google.com. Приступљено 5. 1. 2016.
- ^ Running Pure Django Projects on Google App Engine.
- ^ DjangoCon EU series Архивирано на сајту Wayback Machine (4. март 2016), Lanyrd.com
- ^ DjangoCon US series Архивирано на сајту Wayback Machine (2. април 2016), Lanyrd.com
- ^ "DjangoCon".
- ^ DjangoCon AU 2013 Архивирано на сајту Wayback Machine (11. јануар 2016).
- ^ „Django development IDEs discussion at Stackoverflow”. Stackoverflow.com. 29. 4. 2011. Приступљено 5. 1. 2016.
- ^ „NetBeans Django Plugin”. Code.google.com. Приступљено 5. 1. 2016.
- ^ "Introducing Django 0.90". Django weblog. Приступљено 2 February 2013.
- ^ "Django 0.91 released". Django weblog. Приступљено 2 February 2013.
- ^ "Introducing Django 0.95". Django weblog. Приступљено 2 February 2013.
- ^ "Announcing Django 0.96!". Django weblog. Приступљено 2 February 2013.
- ^ "Django 1.0 released!". Django weblog. Приступљено 2 February 2013.
- ^ "Django 1.1 released". Django weblog. Приступљено 2 February 2013.
- ^ "Django 1.2 released". Django weblog. Приступљено 2 February 2013.
- ^ "Django 1.3 released". Django weblog. Приступљено 2 February 2013.
- ^ "Django 1.4 released". Django weblog. Приступљено 2 February 2013.
- ^ „Django’s release process | Django documentation | Django”. Docs.djangoproject.com. Архивирано из оригинала 06. 03. 2016. г. Приступљено 5. 1. 2016.
- ^ "Django 1.5 released" Django weblog. Приступљено 27 February 2013.
- ^ "Django 1.6 released" Django weblog. Приступљено 6 November 2013.
- ^ "Django 1.7 released" Django weblog. Приступљено 4 September 2014.
- ^ "Django 1.8 released" Django weblog. Приступљено 2 April 2015.
Спољашње везе Уреди
- Званични веб-сајт
- Two Scoops Press Curated List of Django Tutorials Архивирано на сајту Wayback Machine (6. новембар 2015) - Свеобухватна листа освежених Django туторијала.
- Tango with Django - Почетнички туторијал за веб програмирање са Django-ом.
- Taskbuster - Туторијал за искусне програмере који желе да науче Django.
- Django Packages - Директоријум поновно коришћених апликација, сајтова, алатки, и више за Django пројекте.
- Django Girls official tutorial . Туторијал је осмишљен за људе који су тек почели са учењем програмирања.
- Django на сајту Twitter