KREIRANJE DJANGO WEB APLIKACIJE- HEROKU PLATFORMA NASTAVAK
Kreiranje Procfile
U okviru root foldera potrebno je kreirati Procfile(tip File) gde se definiše komanda koja se pokreće da bi se startovala aplikacija:
web: gunicorn logo_kreator.wsgi --log-file -
To je sadržano u fajlu. Ovim se definiše koja će se komanda pokrenuti kad se startuje server
web: gunicorn logo_kreator.wsgi --log-file -
To je sadržano u fajlu. Ovim se definiše koja će se komanda pokrenuti kad se startuje server
Kreiranje static fajlova
Static fajlovi su dodatni fajlovi koji se koriste u projektu, kao što su slike, css, javascript fajlovi. Folder static se obično stavlja u root projekta. U settings.py mora se podesiti putanja do foldera STATIC_ROOT i url, koji je obično /static/ , ali može se definisati i drugačije pomoću STATIC_URL .
Static fajlovi će se kopirati na lokaciju definisanu sa STATIC_ROOT, posle komande python manage.py collectstatic u command promptu. Static fajlovi se na kokalu pre toga cuvaju u direktorijumu koji se definiše sa
STATICFILES_DIRS=[(os.path.join(BASE_DIR,'assets'))] u okviru settings.py
Ovaj direktorijum ne sme biti isti sa STATIC_ROOT. Obično se ostavi da assets bude prazan na početku
Unutar settings.py:
STATICFILES_DIRS=[(os.path.join(BASE_DIR,'assets'))] u okviru settings.py
Ovaj direktorijum ne sme biti isti sa STATIC_ROOT. Obično se ostavi da assets bude prazan na početku
Unutar settings.py:
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
STATIC_URL = '/static/'
STATICFILES_DIRS=[(os.path.join(BASE_DIR,'assets'))]
# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
STATIC_URL = '/static/'
STATICFILES_DIRS=[(os.path.join(BASE_DIR,'assets'))]
Unutar templejt html fajlova ov se mora uključiti. Na početku base.html fajla uključićemo static fajlove:
{% load static %}
Ažuriranje izmena
Svaki put kada se napravi izmena na lokalnom računaru, te promene se neće automatski ažurirati i na web serveru. Da bi se ažurirale komande potrebno je prvo pripremiti fajlove i foldere za slanje. Prethodno, ako već niste ulogovani na vaš Heroku nalog, to treba uraditi komandom:
$ heroku login
a zatim:
$ git add .
Zatim uraditi potvrdu(commit) sa opisom izmene, ako se želi:
$ git commit -m "Opis promena"
I na kraju pokrenuti ažuriranje pozivom komande push. Ukoliko se želi ažurirati u obrnutom smeru, onda bi se umesto push izvršila pull komanda.
$ git push heroku master
Posle ostvarenih promena može se startovati webserver:
$ heroku open
Posle pokretanja pojaviće se sledeća greška:
Vidi se da nedostaju dozvole za pristup domenu. Potrebno je dodati dopuštene hostove unutar settings.py fajla:
Adresu websajta je dodata u listu pod nazivom ALLOWED_HOST.
Posle ponovnog izvršenja komande push i pokretanja aplikacije na web serveru prikazaće se strana:
Posle ponovnog izvršenja komande push i pokretanja aplikacije na web serveru prikazaće se strana:
Opis greške možemo dobiti ako u command prompz-u otkucamo naredbu:
$ heroku logs --tail
Do greške dolazijer na heroku webserveru nije podešena i ažurirana baza podataka tako da ima iste one podatke koji su kreirani kada se aplikacija razvijala na localhost-u.
U meniju treba odabrati stavku data(vidi sliku ), da bi upravljali bazama na heroku platformi:
U meniju treba odabrati stavku data(vidi sliku ), da bi upravljali bazama na heroku platformi:
Postgre baza je dodeljena kreiranoj aplikaciji. klikom na nju i izborom kartice settings, može se podesiti baza podataka, odnosno definisati: naziv, šifra, korisnik za bazu, host itd:
Baza je kreirana u oblaku, npr. sajtu amazon, automatski i parametri se mogu videti klikom na dugme ” View Credentials”.
Ove parametre treba prekopirati u settings fajlu, umesto parametra za localhost:
Treba napomenuti da ovi parametri za bazu mogu ostati i kada se dalje bude razvijala aplikacija na localhost-u, u suprotnom se lokalna baza mora svaki put ažurirati i uskladiti sa promenama u bazi na webserveru.
Ako ponovo pokrenemo aplikaciju prikazaće se naslovna strana kao na slici:
Ako ponovo pokrenemo aplikaciju prikazaće se naslovna strana kao na slici:
Vidi se sa slike da baza nema izgled, onakakav kakav treba, kao da nedostaje veza sa css fajlom. U alatkama za programere, u chrome pretraživaču, može se videti sledeća greška:
Postoji problem sa static fajlovima na webserveru.
Dodaćemo sada plug-in whitenoice koji olakšava rad sa static fajlovima:
u command prompt-u:
Dodaćemo sada plug-in whitenoice koji olakšava rad sa static fajlovima:
u command prompt-u:
$ pip install whitenoise
To je aplikacija koja pomaže u kopiranju static fajlova.
Posle restartovanja servera i osvežavanja naslovne strane :
Posle restartovanja servera i osvežavanja naslovne strane :
Prethodno
|< Kreiranje aplikacije na Heroku Web Platformi |
Sledeće
Dodavanje modula za registraciju >| |