Django (веб фрејмворк)
Програмер(и) | Софтверска Фондација Django |
---|---|
Прво издање | 21.07.2005. |
Репозиторијум | |
Написан у | Пајтон |
Тип | Фрејмворк Веб Апликације |
Лиценца | 3-clause BSD |
Веб-сајт | djangoproject |
Django (/ˈdʒæŋɡoʊ/ 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-а.
- 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