Django (веб фрејмворк)
From Wikipedia, the free encyclopedia
Remove ads
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]
Remove ads
Историја
Django је рођен на јесен 2003, када су веб програмери у Lawrence Journal-World новинама, Адријан Холовати и Сајмон Вилисон, почели да користе Пајтон да праве апликације.[11] Избачен је јавно под BSD лиценцом у јулу 2005. Фрејмворк је именован по гитаристи Џанго Ренарт.[11]
У јуну 2008, најављено је да ће новоформирана Софтверска Фондација Django убудуће одржавати Django.[12]
Remove ads
Могућности
Компоненте

Упркос томе што је имао сопствену номенклатуру, као што је именовање опозивних објеката који генеришу 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] као једну од уграђених фрејмворкова.
Remove ads
Заједница
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 Архивирано на веб-сајту (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
Remove ads
Историја верзија
Remove ads
Види још
Библиографија
Ова листа је извучена из Current Django Books Архивирано на веб-сајту (14. новембар 2015)
Референце
Спољашње везе
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads