Django

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 – ili 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 ukoliko su kratki rokovi u igri.

Ne dobijete gotovo riješ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 ukoliko ž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čamo 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.

Povezani članci

Odgovori