Django Reinhardt, poznati jazz gitarista služio je kao inspiracija te glazbena podloga pri kreiranju istoimenoga Django web framework projekta. Od perfekcionista, za perfekcioniste, Django je brzo postao najpoznatiji web framework napisan u Python programskom jeziku, kao i uspostavio razinu kvalitete za ostale projekte.
Samo uz jedan posjet službenoj stranici projekta ubrzo dolazimo do tog zaključka. Dokumentacija se smatra ključnom te se nedostaci u istoj smatraju kao bugovi. Možemo sa sigurnošću reći kako bismo voljeli da je više open-source projekta na razini Djanga.
Što je uopće framework?
Framework je skupina biblioteka napisanih kako bi vam olakšala programiranje. Bolje rečeno, umjesto da svaki put iznova pišete vlastite implementacije u mogućnosti ste iskoristiti već gotove biblioteke koje su u velikoj većini slučajeva, budimo iskreni, bolje napisane i dokumentirane nego što bismo sami uspjeli napraviti, pogotovo ako su kratki rokovi u igri.
Ne dobijete gotovo rješenje, ali imate solidnu bazu nad kojom možete graditi.
U slučaju Djanga, dobijete objektno relacijsko mapiranje podataka, automatsko administracijsko sučelje, elegantne URL-ove definirane regularnim izrazima (regex), predloške prilagođene dizajnerima s mogućnošću nasljeđivanja matičnih predložaka, odličan cache sistem, internacionalizaciju te još mnogo korisnih stvari. Skok na dokumentaciju za pregled svih mogućnosti.
Plus i Django
Plus hosting već neko vrijeme ima podršku za Django (kao i za ostale WSGI aplikacije) pa je došlo doba da to i službeno objavimo. Zbog specifičnosti same implementacije, najbolje je da nas kontaktirate ako želite udomiti vaš Django projekt kod nas. cPanel integracija je definitivno u planu. Sve što je potrebno je otvoriti ticket ili nam poslati mail te zatražiti Django okruženje za željenu domenu.
Za one upoznate sa Django frameworkom, dobijete vlastiti virtualenv (virtualno Python okruženje) u koji ste slobodni instalirati željene Python module. Vašu aplikaciju pokreće mod_wsgi
Apache modul, što je i službena preporuka projekta.
Ako pak niste upoznati sa Pythonom, Djangom i ostalim tehnologijama, ipak preporučujemo eksperimentiranje na vašem lokalnom računalu, ponajviše iz razloga što se ovakvo okruženje znatno razlikuje od standardnog PHP drag and drop hostinga.
Upotreba
Nema puno specifičnosti za korištenje Django aplikacija u našem okruženju. Vremenom smo došli do sljedeće konvencije:
/home/username/virtualenv # python virtual environment
/home/username/djangosites # django siteovi
/home/username/djangosites/devel # 'devel' django aplikacija
WSGI skripta ide u djangosites
direktorij te je imenujemo istim imenom kao i direktorij vaše aplikacije, dakle u ovom slučaju to bi bilo devel.wsgi
.
Primjer skripte je sljedeći:
import sys
import site
import os
# definira se path do virtual environmenta:
vepath = '/home/username/virtualenv/lib/python2.6/site-packages'
prev_sys_path = list(sys.path)
site.addsitedir(vepath)
# dodajemo direktorij gdje se nalaze django projekti u PYTHONPATH
sys.path.append('/home/username/djangosites')
new_sys_path = [p for p in sys.path if p not in prev_sys_path]
for item in new_sys_path:
sys.path.remove(item)
sys.path[:0] = new_sys_path
from django.core.handlers.wsgi import WSGIHandler
# definiramo gdje se nalazi django settings module (devel se zamjeni
# s imenom django projekta)
os.environ['DJANGO_SETTINGS_MODULE'] = 'devel.settings'
application = WSGIHandler()
Naravno, za vas će to biti podešeno unaprijed s detaljima koje nam date pri zahtjevu.
Ono što je bitno jest ne zaboraviti aktivirati virtualenv kad radite u shellu. To se radi na sljedeći način:
source virtualenv/bin/activate
Ili još kraće:
. virtualenv/bin/activate
Promjena je aktivna kad vam se prompt promijeni na način da se na početku dodatno pojavi (virtualenv)
.
Instalacija Python modula
Module možete instalirati (nakon što ste aktivirali virtualenv) uz pomoć easy_install
ili pip
komande:
easy_install <ime_modula>
pip install <ime_modula>
Ponovno pokretanje aplikacije
Nakon bilo kakvih promjena u vašem kôdu, dovoljno je samo ‘dotaknuti’ vašu .wsgi
skriptu kako bi server uzeo u obzir novi kôd:
touch djangosites/devel.wsgi
To bi u kratkim crtama bilo to, za sva dodatna pitanja ili nejasnoće znate gdje nas možete pronaći!
A sad je vrijeme za šalicu kave uz još malo Django Reinhardt magije.
Bravo ekipa, ovo je odličan potez! Malo zakašnjeli komentar, znam … 🙁