Django (veb frejmvork)
![]() Logo | |
![]() Django stranica | |
Programer(i) | Softverska Fondacija Django |
---|---|
Prvo izdanje | 21.07.2005. |
Repozitorijum | |
Napisan u | Pajton |
Tip | Frejmvork Veb Aplikacije |
Licenca | 3-clause BSD |
Veb-sajt | djangoproject |
Django (/ˈdʒæŋɡoʊ/ JANG-goh)[1] je besplatan veb frejmvork otvorenog koda, napisanog u Pajtonu, koji prati MVC arhitekturu (MVC) arhitektonski obrazac.[2][3] Održavan je od strane Softverske Fondacije Django, nezavisne organizacije osnovane kao neprofitnu 501(c)(3).
Glavni cilj Django-a je da olakša pravljenje kompleksnih veb sajtova baziranih na bazama podataka. Django stavlja akcenat na ponovno korišćenje i "priključnost" komponenti, rapidno brz razvoj i princip "ne ponavljaj se". Pajton je korišćen sve vreme, čak i za podešavanja, fajlove, i modele podataka. Django takođe nudi opcioni administrativni create, read, update i delete interfejs koji je generisan dinamično kroz samoposmatranje i podešen kroz modele administratora.
Neki poznati sajtovi koji koriste Django uključuju Pinterest,[4] Instagram,[5] Mozilla,[6] The Washington Times,[7] Disqus,[8] Public Broadcasting Service,[9] i Bitbucket.[10]
Istorija
[uredi | uredi izvor]Django je rođen na jesen 2003, kada su veb programeri u Lawrence Journal-World novinama, Adrijan Holovati i Sajmon Vilison, počeli da koriste Pajton da prave aplikacije.[11] Izbačen je javno pod BSD licencom u julu 2005. Frejmvork je imenovan po gitaristi Džango Renart.[11]
U junu 2008, najavljeno je da će novoformirana Softverska Fondacija Django ubuduće održavati Django.[12]
Mogućnosti
[uredi | uredi izvor]Komponente
[uredi | uredi izvor]![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Django_useradmin.png/220px-Django_useradmin.png)
Uprkos tome što je imao sopstvenu nomenklaturu, kao što je imenovanje opozivnih objekata koji generišu HTTP odgovore "pregleda",[2] glavni Django frejmvork može biti viđen kao MVC.[3] Sadrži objektno-relacioni maper (ORM) koji posreduje između modula podataka (definisanih kao Pajton klase) i relacionih baza podataka ("Model"); sistem za obradu HTTP zahteva sa sistemom veb šablona ("Pregled") i dispečera veb adrese regularnog izraza ("Kontrolor").
Takođe uključeni u frejmvork su:
- lagani i samostalni veb server za razvoj i testiranje
- forma serijalizacije i validacionog sistema koji može da prevodi između HTML formi i vrednosti pogodnih za skladište u bazi podataka
- sistem šablona koji omogućava koncept nasleđa pozajmljenog od objektno-orgjenisanog programiranja
- Frejmvork veb keša koji može da koristi bilo koji metod keširanja
- podrška za klase posrednog softvera koja može da interveniše tokom raznih faza obrade zahteva i da izvrši ručno napravljene funkcije
- unutrašnji dispečerski sistem koji dozvoljava komponentama aplikacija da komuniciraju između sebe o događajima preko prethodno definisanih signala
- Sistem internacionalizacije i lokalizacije, uključujući prevode komponenti Django-a u razne jezike
- Sistem serijalizacije koji može napraviti i čitati XML i/ili JSON reprezentacije instance modela Django-a
- sistem za proširivanje mogućnosti šablona
- interfejs do Pajtonovog ugrađenog frejmvorka za testiranje jedinice
Ugrađene aplikacije
[uredi | uredi izvor]Glavna Django distribucija takođe dolazi sa mnogobrojnim ugrađenim aplikacijama u okviru svog paketa, uključujući:
- sistem autentifikacije sa mogućnošću proširivanja
- administrativni dinamični interfejs
- alatke za generisanje RSS i Atom priliva informacija
- frejmvork sajta koji dozvoljava jednu Django instalaciju da bude pokrenuta na više sajtova, pri čemu svaki ima svoj sadržaj i aplikacije
- alatke za generisanje Google Sitemaps
- ugrađeno smanjenje kros-sajtovskih zahteva falsifikata, cross-site scripting, SQL injekciju, razbijanje šifri i ostalih tipičnih napada na vebu, od kojih je najviše njih već uključeno[13][14]
- frejmvork za pravljenje GIS aplikacija
Rastegljivost
[uredi | uredi izvor]Django-ov konfiguracioni sistem dozvoljava kod trećih lica da bude uključen u regularni projekat, imajući u obzir da prati konvencije aplikacije koja je ponovo korišćena[15] #cite_note-18 . Više od 2500 paketa[16] je dostupno da proširi ponašanje originalnog frejmvorka, donoseći rešenja za probleme koju originalna alatka nije mogla: registracija, pretraga, API odredba i potrošnja, CMS, itd.
Ova rastegljivost je, međutim, smanjena internim zavisnostima komponenti. Dok Django filozofija implicira labave veze,[17] filteri šablona i tagova smatraju jednu implementaciju, i oba auth i admin ugrađene aplikacije zahtevaju korišćenje ORM-a. Nijedan od ovih filtera ili ugrađenih aplikacija su obavezne za pokretanje Django projekta, ali obnovljive aplikacije su sklone da od njih zavise, ohrabrujući programere da nastave sa korišćenjem zvaničnih stekova u redu da bi imali pune beneficije od ekosistema aplikacija.
Serverski aranžmani
[uredi | uredi izvor]Django može biti pokrenut u vezniku sa Apache, NGINX korišćenjem WSGI, Gunicorn, ili Cherokee korišćenjem (modul Pajtona).[18] Django takođe uključuje mogućnost pokretanja FastCGI servera, omogućavajući korišćenje van bilo kog veb servera koji podržava FastCGI, kao što je Lighttpd ili Hiawatha. Takođe je moguće koristiti druge WSGI-kompatibilne veb servere.[19] Django zvanično podržava četiri bek-end baze podataka: PostgreSQL, MySQL, SQLite, i Oracle. Microsoft SQL Server može biti korišćen sa django-mssql na Majkrosoft operativnim sistemima,[20] dok slični spoljni bek-endovi postoje za IBM DB2,[21] SQL Anywhere[22] i Firebird.[23] Postoji fork nazvan django-nonrel, koji podržava NoSQL baze podataka, kao što su MongoDB i Google App Engine prodavnica podataka.[24]
Django takođe može biti pokrenut u vezi sa Jython-om na bilo kom Java EE aplikacionom serveru kao što je GlassFish ili JBoss. U ovom slučaju django-jython mora biti instaliran da bi omogućio JDBC drajvere za povezivanje baze podataka, koji takođe omogućava funkcionalnost da se Django kompajluje u odgovarajući .war za razvoj .[25]
Google App Engine uključuje podršku za Django verziju 1.x.x[26] kao jednu od ugrađenih frejmvorkova.
Zajednica
[uredi | uredi izvor]DjangoCon
[uredi | uredi izvor]Postoji semi-godišnja konferencija za Django programere i korisnike, nazvana "DjangoCon", koja se održava od septembra 2008. DjangoCon se održava godišnje u Evropi, u maju ili junu;[27] dok druga se održava u SAD u septembru, obično u Portlandu.[28] 2012 DjangoCon se održao u Vašingtonu od 3. do 8. septembra. 2013 DjangoCon se održao u Čikagu u Hyatt Regency hotelu.[29]
Django mini-konferencije su održane u Hobartu, Australiji u julu 2013. i u Brisbejnu, Australiji u avgustu 2014.[30]
Drugi jezici
[uredi | uredi izvor]Django-ov šablonski dizajn je prebačen na druge jezike pored Pajtona, pružajući dobru kros-platformsku podršku. Neke od ovih opcija su više direktni portovi, dok su drugi inspirisani Django-om, zadržavajući svoje koncepte pri čemu se više trudi u odstupanju od dizajna Django-a.
- Swig za JavaScript
- Liquid za Ruby
- Template::Swig za Perl
- Twig Arhivirano na sajtu Wayback Machine (9. jul 2017) za PHP
- Jinja za Python
Integrisana okruženja programiranja za Pajton
[uredi | uredi izvor]Dok većina Django programera koristi uređivač teksta kao što su Vim, Emacs, TextMate ili Sublime sa Django Bundle za njihove projekte, ostali preferiraju pajton-specifične alatke koje doprinose debagovanju, prepravljanju, testiranju jedinica, itd.[31]
- Anjuta
- Aptana Studio sa integrisanim PyDev
- Codenvy
- Eclipse sa PyDev
- Eric Python IDE
- IntelliJ IDEA sa Django priključkom, omogućava funkcionalnost sličnu PyCharm
- Koding
- Komodo IDE
- Microsoft Visual Studio sa Python Tools for Visual Studio
- MonoDevelop
- NetBeans sa Django priključkom[32]
- Ninja IDE
- PyCharm
- PyScripter
- Spyder (softver)
- SourceLair
- Wing IDE
Istorija verzija
[uredi | uredi izvor]Značenje | |
---|---|
Red | Nepodržano |
Yellow | Podržano |
Green | Trenutna verzija |
Version | Date | Notes |
---|---|---|
0.90[33] | 16. nov. 2005. | |
0.91[34] | 11. jan. 2006. | "novi-admin" |
0.95[35] | 29. jul. 2006. | "magično brisanje" |
0.96[36] | 23. mar. 2007. | "newforms", alatke za testiranje |
1.0[37] | 3. sep. 2008. | API stabilnost, odvojen admin, unicode |
1.1[38] | 29. jul. 2009. | Agregati, testovi transakcija |
1.2[39] | 17. maj. 2010. | Višestruke konekcije baze podataka, CSRF, validacija modela |
1.3[40] | 23. mar. 2011. | Pregled klasa, statični fajlovi |
1.4[41] | 23. mar. 2012. | Vremenske zone, testiranje u pregledaču, šabloni aplikacija[42] |
1.5[43] | 26. feb. 2013. | Pajton 3 podrška, podesiv model korisnika |
1.6[44] | 6. nov. 2013. | Posvećeno Malkolmu Trediniku, baza podataka upravljanja transakcijom, connection pooling. |
1.7[45] | 2. sep. 2014. | Migracije, učitavanje aplikacija i konfiguracije. Dobijaće sigurnosne ispravke bar do oktobra 2015. |
1.8[46] | 1. apr. 2015. | Nativna podrška za višestruke šablone. Izdanje sa dugačkom podrškom, podržana bar do aprila 2018 |
Vidi još
[uredi | uredi izvor]Bibliografija
[uredi | uredi izvor]Ova lista je izvučena iz Current Django Books Arhivirano na sajtu Wayback Machine (14. novembar 2015)
Reference
[uredi | uredi izvor]- ^ „What does "Django" mean, and how do you pronounce it?”. Docs.djangoproject.com. Pristupljeno 5. 1. 2016.
- ^ a b „Django FAQ about MVC in Django”. Docs.djangoproject.com. Pristupljeno 5. 1. 2016.
- ^ a b Adrian Holovaty, Jacob Kaplan-Moss; et al.
- ^ „Pinterest: What technologies were used to make Pinterest?”. Quora.com. Pristupljeno 5. 1. 2016.
- ^ "What Powers Instagram: Hundreds of Instances, Dozens of Technologies".
- ^ „Python | MDN”. Developer.mozilla.org. 9. 1. 2014. Arhivirano iz originala 08. 02. 2012. g. Pristupljeno 5. 1. 2016.
- ^ Opensource.washingtontimes.com.
- ^ "Scaling Django to 8 Billion Page Views".
- ^ "20 Creative Websites Running Django" Arhivirano na sajtu Wayback Machine (14. jun 2013).
- ^ „DjangoSuccessStoryBitbucket – Django”. Code.djangoproject.com. Arhivirano iz originala 20. 04. 2016. g. Pristupljeno 5. 1. 2016.
- ^ a b "Django's History" Arhivirano na sajtu Wayback Machine (2. jul 2015).
- ^ „Announcing the Django Software Foundation”. Djangoproject.com. 17. 6. 2008. Pristupljeno 5. 1. 2016.
- ^ "Security in Django".
- ^ Socol, James (2012).
- ^ „What is a reusable app?”. Django-reusable-app-docs.readthedocs.org. Pristupljeno 5. 1. 2016.
- ^ » more grids... „djangopackages.com, an open source package repository for the Django framework”. Djangopackages.com. Pristupljeno 5. 1. 2016.
- ^ „Django design philosophies”. Docs.djangoproject.com. Arhivirano iz originala 04. 03. 2016. g. Pristupljeno 5. 1. 2016.
- ^ „Cookbook: Setting up Django”. Cherokee-project.com. Pristupljeno 5. 1. 2016.
- ^ How to use Django with Apache and mod_wsgi Arhivirano na sajtu Wayback Machine (8. mart 2013).
- ^ „Manfre / django-mssql / source / — Bitbucket”. Bitbucket.org. Pristupljeno 5. 1. 2016.
- ^ „ibmdb/python-ibmdb ¡ GitHub”. Code.google.com. Pristupljeno 5. 1. 2016.
- ^ „sqlany-django - SQL Anywhere Database Backend for Django - Google Project Hosting”. Code.google.com. Pristupljeno 5. 1. 2016.
- ^ „maxirobaina/django-firebird ¡ GitHub”. Github.com. Pristupljeno 5. 1. 2016.
- ^ „Django non-rel”. Django non-rel. Pristupljeno 5. 1. 2016.
- ^ „beachmachine/django-jython · GitHub”. Code.google.com. Pristupljeno 5. 1. 2016.
- ^ Running Pure Django Projects on Google App Engine.
- ^ DjangoCon EU series Arhivirano na sajtu Wayback Machine (4. mart 2016), Lanyrd.com
- ^ DjangoCon US series Arhivirano na sajtu Wayback Machine (2. april 2016), Lanyrd.com
- ^ "DjangoCon".
- ^ DjangoCon AU 2013 Arhivirano na sajtu Wayback Machine (11. januar 2016).
- ^ „Django development IDEs discussion at Stackoverflow”. Stackoverflow.com. 29. 4. 2011. Pristupljeno 5. 1. 2016.
- ^ „NetBeans Django Plugin”. Code.google.com. Pristupljeno 5. 1. 2016.
- ^ "Introducing Django 0.90". Django weblog. Pristupljeno 2 February 2013.
- ^ "Django 0.91 released". Django weblog. Pristupljeno 2 February 2013.
- ^ "Introducing Django 0.95". Django weblog. Pristupljeno 2 February 2013.
- ^ "Announcing Django 0.96!". Django weblog. Pristupljeno 2 February 2013.
- ^ "Django 1.0 released!". Django weblog. Pristupljeno 2 February 2013.
- ^ "Django 1.1 released". Django weblog. Pristupljeno 2 February 2013.
- ^ "Django 1.2 released". Django weblog. Pristupljeno 2 February 2013.
- ^ "Django 1.3 released". Django weblog. Pristupljeno 2 February 2013.
- ^ "Django 1.4 released". Django weblog. Pristupljeno 2 February 2013.
- ^ „Django’s release process | Django documentation | Django”. Docs.djangoproject.com. Arhivirano iz originala 06. 03. 2016. g. Pristupljeno 5. 1. 2016.
- ^ "Django 1.5 released" Django weblog. Pristupljeno 27 February 2013.
- ^ "Django 1.6 released" Django weblog. Pristupljeno 6 November 2013.
- ^ "Django 1.7 released" Django weblog. Pristupljeno 4 September 2014.
- ^ "Django 1.8 released" Django weblog. Pristupljeno 2 April 2015.
Spoljašnje veze
[uredi | uredi izvor]- Zvanični veb-sajt
- Two Scoops Press Curated List of Django Tutorials Arhivirano na sajtu Wayback Machine (6. novembar 2015) - Sveobuhvatna lista osveženih Django tutorijala.
- Tango with Django - Početnički tutorijal za veb programiranje sa Django-om.
- Taskbuster - Tutorijal za iskusne programere koji žele da nauče Django.
- Django Packages - Direktorijum ponovno korišćenih aplikacija, sajtova, alatki, i više za Django projekte.
- Django Girls official tutorial . Tutorijal je osmišljen za ljude koji su tek počeli sa učenjem programiranja.
- Django na sajtu X