Python → Python za web → Django modeli i baza podataka


Django modeli i rad sa bazom podataka


Lekcija 10 od 14

U prethodnoj lekciji napravili smo prvi Django projekat i pokrenuli lokalni web server.

Sada ćemo naučiti kako Django koristi bazu podataka za čuvanje informacija.

Django koristi poseban sistem koji se zove ORM (Object Relational Mapping).

Šta je Django ORM?

ORM omogućava da radimo sa bazom podataka koristeći Python kod umesto SQL komandi.

  • tabele u bazi → Python klase
  • kolone u tabeli → atributi klase
  • redovi u tabeli → objekti klase
Zahvaljujući ORM sistemu nije potrebno direktno pisati SQL upite.

Šta je model u Django-u?

Model predstavlja Python klasu koja opisuje strukturu podataka u bazi.

Model se definiše u fajlu models.py.


Primer modela


from django.db import models

class Post(models.Model):

    naslov = models.CharField(max_length=200)

    tekst = models.TextField()

    datum = models.DateTimeField()

Ovaj model kreira tabelu u bazi sa tri kolone:

  • naslov
  • tekst
  • datum

Migracije baze podataka

Nakon definisanja modela potrebno je ažurirati bazu podataka.

To se radi pomoću Django migracija.


python manage.py makemigrations

python manage.py migrate
Migracije automatski kreiraju tabele u bazi podataka.

Dodavanje podataka u bazu

Podatke možemo dodavati iz Django shell-a.


python manage.py shell

from blog.models import Post

post = Post(naslov="Prvi post", tekst="Test tekst")

post.save()

Ovaj kod dodaje novi red u tabelu baze podataka.


Pregled podataka


Post.objects.all()

Ova komanda vraća sve zapise iz tabele.


Django admin panel

Jedna od najvećih prednosti Django framework-a je ugrađeni administrativni panel.

On omogućava jednostavno upravljanje podacima u bazi.


python manage.py createsuperuser

Nakon toga možemo pristupiti admin panelu:


http://127.0.0.1:8000/admin
Admin panel omogućava dodavanje, brisanje i izmenu podataka u bazi.

Povezani tutorijali

Ako želite da vidite kako se Django aplikacija kasnije postavlja na pravi web server, pogledajte sledeće tutorijale:


Često postavljana pitanja

Šta je Django model?

Model je Python klasa koja definiše strukturu podataka u bazi.

Šta radi Django ORM?

ORM omogućava rad sa bazom bez pisanja SQL upita.

Šta su migracije?

Migracije ažuriraju strukturu baze na osnovu definisanih modela.

Šta je Django admin?

Admin panel omogućava upravljanje podacima u aplikaciji preko web interfejsa.