Django rakenduste kasutamine
Virtualenv tööriista abil saab luua isoleeritud Pythoni keskkondi. Virtualenv loob kataloogi, milles hoitakse Pythoni projekti jaoks paigaldatud moodulite koodi. See võimaldab serverisse paigaldada ka selliseid mooduleid, mida ei ole eelinstalleeritud.
Virtualenvi tuleb kasutada SSH keskkonnas käsurealt. SSH ligipääsu saab lisada iseteenindusest.
Loome kõikide virtualenv'ide jaoks kataloogi:
Loome konkreetse projekti virtualenvi, nimetame selle "website":
Aktiveerime projekti virtualenvi:
Nüüd saab paigaldada vajalikke mooduleid. Selleks võtame appi tööriista pip. Paigaldame soovitud django versiooni:
Soovitavalt tuleks virtualenvi kohe ära paigaldada Django jooksutamiseks vajalik flup moodul:
Hea praktika on hoida projekti kood htdocs kataloogist kataloogi võrra ülevalpool ehk juurkataloogis. Liigume sinna kataloogi:
Kasutame django-admin tööriista uue django projekti alustamiseks, nimetame selle "djangoveeb":
Siseneme projekti kataloogi.
Loome uue rakenduse djangoveebi projekti, nimega "home":
Avame faili djangoveeb/urls.py
Lisame uue impordi importide juurde:
Lisame urlpatternsitesse uue lingi reegli, mis käsitleks avalehte (url(r'^$', views.index),):
Avame faili ~/djangoveeb/home/views.py
Lisame uued impordid importide juurde:
Lisame avalehe funktsiooni index, mis tagastab jooksva django versiooni info.
Muudame ~/djangoveeb/settings.py faili.
Lisame oma domeeni ALLOWED_HOSTS listi (asenda domeen.ee oma domeeni nimega, kus leht jooksma hakkab):
Kommenteerime andmebaasi osa, kuna selle rakenduse puhul andmebaasi ei kasutata:
Andmebaasi kasutava rakenduse puhul tuleb tavapärase "localhost" asemel kasutada hostina IP-aadressi 127.0.0.1.
Veebiserverites on pythonis kirjutatud koodi jooksutamine vaikimisi lubatud. Seda tuleb teha läbi FastCGI, mille rakendamise saab seadistada .htaccess faili kaudu.
Vaikimisi on FastCGI kasutamine seadistatud veebilehe ~/htdocs/cgi-bin kataloogi sees (kui seda ei ole, siis loo see). Selleks, et django FastCGI kaudu tööle panna, tuleb luua ~/htdocs/cgi-bin kataloogi fail django.fcgi:
Failile tuleb anda käivitamise õigus:
NB! Veendu, et failides (näiteks django.fcgi sees) oleksid kasutusel UNIX reavahetused. Muidu ei hakka django rakendus tööle.
Järgmiseks tuleb ~/htdocs/.htaccess faili lisada reeglid, mis lubavad .fcgi failide tuvastamise FastCGI skriptina ja suunavad veebipäringud django.fcgi faili.
Avades veebilehe, peaks seal kuvatama "Running django x.y.z".
E-kirjade saatmine djangost
E-kirjade saatmiseks installime mooduli:
Lisame ~/djangoveeb/djangoveeb/settings.py faili lõppu:
Lisame ~/djangoveeb/home/views.py index funktsiooni enne return HttpResponse("Running django " + get_version()) rida:
Abistavad tähelepanekud
Koodimuudatuste rakendumine
Kui veebilehte on juba avatud, võib django protsess jooksmas olla ja koodi muutmise järel ei kajastu need muudatused uuel lehe laadimisel koheselt. Seetõttu tuleks pärast koodimuudatusi jooksev pythoni protsess peatada, et see saaks lehe värskendamisel värske koodiga tööle hakata.
Pythoni versioon
Näidiskood kasutab pythoni vaikimisi versiooni, milleks on juhendi kirjutamise hetkel python 3.9. Kui soovid kasutada python 3.10/3.11/3.12 versiooni, siis tuleks virtualenv tekitada järgnevalt:
ja kasutada django.fcgi faili alguses:
ning samas failis python 3.10 virtualenvi pakkide teekonda:
Pythoni veateadete logi
Veebiserveri pealogile pole kahjuks klientidele võimalik ligipääsu tekitada. Seetõttu pythoni koodi veateateid vaadata ei saa, kuid abiks võib olla koodi käsitsi käivitamine käsurealt:
Flup
Kui serveris puudub uue django jooksutamiseks vajalik flup moodul, siis saab selle ise virtualenvis paigaldada: