Python → Python za web → Django modeli i baza podataka
Django modeli i rad sa bazom podataka
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.
Š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
Š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
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
Povezani tutorijali
Ako želite da vidite kako se Django aplikacija kasnije postavlja na pravi web server, pogledajte sledeće tutorijale:
- Kreiranje Django web aplikacije – početak projekta
- Postavljanje Django aplikacije na Heroku platformu
Č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.