Django (veb frejmvork)

S Vikipedije, slobodne enciklopedije
Django
Logo
Logo
Django stranica
Django stranica
Programer(i)Softverska Fondacija Django
Prvo izdanje21.07.2005.
Repozitorijum Uredi na Vikipodacima
Napisan uPajton
TipFrejmvork Veb Aplikacije
Licenca3-clause BSD
Veb-sajtdjangoproject.com

Django (/ˈæŋɡ/ 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]

Skrinšot interfejsa administratora za podešavanje korisničkih naloga

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.

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]

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]

  1. ^ „What does "Django" mean, and how do you pronounce it?”. Docs.djangoproject.com. Pristupljeno 5. 1. 2016. 
  2. ^ a b „Django FAQ about MVC in Django”. Docs.djangoproject.com. Pristupljeno 5. 1. 2016. 
  3. ^ a b Adrian Holovaty, Jacob Kaplan-Moss; et al.
  4. ^ „Pinterest: What technologies were used to make Pinterest?”. Quora.com. Pristupljeno 5. 1. 2016. 
  5. ^ "What Powers Instagram: Hundreds of Instances, Dozens of Technologies". 
  6. ^ „Python | MDN”. Developer.mozilla.org. 9. 1. 2014. Arhivirano iz originala 08. 02. 2012. g. Pristupljeno 5. 1. 2016. 
  7. ^ Opensource.washingtontimes.com.
  8. ^ "Scaling Django to 8 Billion Page Views". 
  9. ^ "20 Creative Websites Running Django" Arhivirano na sajtu Wayback Machine (14. jun 2013). 
  10. ^ „DjangoSuccessStoryBitbucket – Django”. Code.djangoproject.com. Arhivirano iz originala 20. 04. 2016. g. Pristupljeno 5. 1. 2016. 
  11. ^ a b "Django's History" Arhivirano na sajtu Wayback Machine (2. jul 2015).
  12. ^ „Announcing the Django Software Foundation”. Djangoproject.com. 17. 6. 2008. Pristupljeno 5. 1. 2016. 
  13. ^ "Security in Django".
  14. ^ Socol, James (2012).
  15. ^ „What is a reusable app?”. Django-reusable-app-docs.readthedocs.org. Pristupljeno 5. 1. 2016. 
  16. ^ » more grids... „djangopackages.com, an open source package repository for the Django framework”. Djangopackages.com. Pristupljeno 5. 1. 2016. 
  17. ^ „Django design philosophies”. Docs.djangoproject.com. Arhivirano iz originala 04. 03. 2016. g. Pristupljeno 5. 1. 2016. 
  18. ^ „Cookbook: Setting up Django”. Cherokee-project.com. Pristupljeno 5. 1. 2016. 
  19. ^ How to use Django with Apache and mod_wsgi Arhivirano na sajtu Wayback Machine (8. mart 2013).
  20. ^ „Manfre / django-mssql / source / — Bitbucket”. Bitbucket.org. Pristupljeno 5. 1. 2016. 
  21. ^ „ibmdb/python-ibmdb ¡ GitHub”. Code.google.com. Pristupljeno 5. 1. 2016. 
  22. ^ „sqlany-django - SQL Anywhere Database Backend for Django - Google Project Hosting”. Code.google.com. Pristupljeno 5. 1. 2016. 
  23. ^ „maxirobaina/django-firebird ¡ GitHub”. Github.com. Pristupljeno 5. 1. 2016. 
  24. ^ „Django non-rel”. Django non-rel. Pristupljeno 5. 1. 2016. 
  25. ^ „beachmachine/django-jython · GitHub”. Code.google.com. Pristupljeno 5. 1. 2016. 
  26. ^ Running Pure Django Projects on Google App Engine.
  27. ^ DjangoCon EU series Arhivirano na sajtu Wayback Machine (4. mart 2016), Lanyrd.com
  28. ^ DjangoCon US series Arhivirano na sajtu Wayback Machine (2. april 2016), Lanyrd.com
  29. ^ "DjangoCon".
  30. ^ DjangoCon AU 2013 Arhivirano na sajtu Wayback Machine (11. januar 2016).
  31. ^ „Django development IDEs discussion at Stackoverflow”. Stackoverflow.com. 29. 4. 2011. Pristupljeno 5. 1. 2016. 
  32. ^ „NetBeans Django Plugin”. Code.google.com. Pristupljeno 5. 1. 2016. 
  33. ^ "Introducing Django 0.90". Django weblog. Pristupljeno 2 February 2013.
  34. ^ "Django 0.91 released". Django weblog. Pristupljeno 2 February 2013.
  35. ^ "Introducing Django 0.95". Django weblog. Pristupljeno 2 February 2013.
  36. ^ "Announcing Django 0.96!". Django weblog. Pristupljeno 2 February 2013.
  37. ^ "Django 1.0 released!". Django weblog. Pristupljeno 2 February 2013.
  38. ^ "Django 1.1 released". Django weblog. Pristupljeno 2 February 2013.
  39. ^ "Django 1.2 released". Django weblog. Pristupljeno 2 February 2013.
  40. ^ "Django 1.3 released". Django weblog. Pristupljeno 2 February 2013.
  41. ^ "Django 1.4 released". Django weblog. Pristupljeno 2 February 2013.
  42. ^ „Django’s release process | Django documentation | Django”. Docs.djangoproject.com. Arhivirano iz originala 06. 03. 2016. g. Pristupljeno 5. 1. 2016. 
  43. ^ "Django 1.5 released" Django weblog. Pristupljeno 27 February 2013.
  44. ^ "Django 1.6 released" Django weblog. Pristupljeno 6 November 2013.
  45. ^ "Django 1.7 released" Django weblog. Pristupljeno 4 September 2014.
  46. ^ "Django 1.8 released" Django weblog. Pristupljeno 2 April 2015.

Spoljašnje veze[uredi | uredi izvor]