Od frontenda do Django-a: šta dodajemo i priprema alata

Lekcija 1 od 9 · Python web: Django projekat

Frontend Logo kreatora radi u pregledaču, ali ne pamti ništa: posle zatvaranja pregledača logoi nestaju, a korisnici nemaju naloge. Za to treba backend – program na serveru sa bazom podataka. U ovom delu ga pravimo u Python-u pomoću framework-a Django. Prvo: šta tačno dodajemo i kako se pripremi računar.

Pre nego što počneš: potrebno predznanje – frontend projekat Logo kreator (kurs HTML, CSS i JavaScript), osnove Python-a: funkcije, rečnici, klase.
Kako da učiš: radi u svom projektu korak po korak i posle svake lekcije proveri da li server radi; zadatak na kraju prvo uradi sam/a. Kod je za Django 5.2 (LTS) i Python 3.12+; svaki deo upiši u fajl naveden u komentaru na vrhu primera.

Šta backend dodaje projektu

FunkcijaBez backenda (frontend)Sa Django-om
naslovna i generatordada – isti HTML, CSS i JavaScript, sada kao Django šabloni
nalozi korisnikaneregistracija, prijava, odjava
čuvanje logoane (samo preuzimanje fajla)logoi se čuvaju u bazi i vide sa svakog uređaja
administracijaneadmin panel: pregled korisnika i logoa
zaštita–svako vidi i briše samo svoje logoe

Tok rada: korisnik na naslovnoj upiše naziv → generator → prijava ili registracija → logo se čuva → strana „Moji logoi“.

Zašto Django

FlaskDjango
veličinamali – sve dodaješ sam/aveliki – „baterije uključene“
baza i modelidodatna bibliotekaugrađeno (ORM, migracije)
nalozi i prijavadodatna bibliotekaugrađeno
admin panelnemaugrađen
za učenjeodličan za prve korakeodličan za ceo projekat

Ako još nisi radio/la ni sa jednim Python web framework-om, prvo prođi kratke lekcije Uvod u Flask i Uvod u Django iz oblasti Python – ovde ih koristimo na pravom projektu. Pojmovi zahtev, odgovor, ruta i statusni kod objašnjeni su u lekciji HTTP protokol.

Alati

AlatZaProvera u komandnoj liniji
Python 3.12 ili novijijezikpy --version
pipinstalacija paketa (dolazi sa Python-om)py -m pip --version
VS Code + dodatak Pythoneditor–
Gitistorija izmena i postavljanje na internet (lekcija 9)git --version

Na Windows-u se Python preuzima sa python.org; u instalaciji uključi Add python.exe to PATH. Baza PostgreSQL nije potrebna za razvoj – Django koristi ugrađeni SQLite, a PostgreSQL dobijamo tek na serveru.

Virtuelno okruženje i instalacija Django-a

Svaki projekat ima svoje virtuelno okruženje (.venv) – poseban folder sa paketima samo tog projekta, da se verzije ne mešaju između projekata.

:: Windows, cmd – u folderu gde čuvaš projekte
mkdir logo_kreator_django
cd logo_kreator_django
py -m venv .venv
.venv\Scripts\activate
:: od sada na početku reda piše (.venv)
python -m pip install --upgrade pip
pip install "django>=5.2,<7"
python -m django --version

Na Linux-u i macOS-u aktivacija je source .venv/bin/activate. Svaki put kada otvoriš novi prozor komandne linije, okruženje ponovo aktiviraj. U VS Code-u: Ctrl+Shift+P → Python: Select Interpreter → izaberi onaj iz .venv.

Verzija: primeri su pisani za Django 5.2 (verzija sa dugom podrškom, LTS) i rade i u Django-u 6. Na internetu ima mnogo primera za stare verzije (npr. from django.conf.urls import url) – oni u novim verzijama ne rade.

Video: instalacija alata

Napomena uz video: video je snimljen za prvu verziju projekta (starija verzija Django-a, Heroku). Ideje su iste, ali se kod iz ove lekcije razlikuje u detaljima – kada se razlikuju, važi kod sa ove strane.

Zadaci za vežbu

Za svaki zadatak postoji primer, uputstvo i rešenje.

ZADATAK 01Težina: lako

Proveri okruženje

Napravi folder projekta i virtuelno okruženje, instaliraj Django i zapiši izlaz komandi python --version, pip list i python -m django --version. Zatim deaktiviraj okruženje (deactivate) i ponovo pokreni python -m django --version. Šta se desilo i zašto?

Česte greške i saveti
  • Zaboravljena aktivacija okruženja je najčešći uzrok greške No module named django.
  • Folder .venv se ne kopira i ne šalje na GitHub – pravi se ponovo iz requirements.txt.
  • Kod sa interneta proveri: ako koristi url() ili django.conf.urls, pisan je za Django 3 ili stariji.

Proveri znanje

Otvori kviz

Priprema za Django

1. Šta Django dodaje Logo kreatoru u odnosu na frontend?




2. Čemu služi virtuelno okruženje?




3. Koju bazu Django koristi za razvoj bez ikakvog podešavanja?