? Lengo la Somo
-
Kuelewa jinsi Django inavyowasiliana na database.
-
Kufahamu maana ya ORM.
-
Kutambua aina ya databases zinazotumika.
-
Kuelewa dhana ya model kama mwakilishi wa jedwali kwenye database.
1️⃣ Django na Database
Django ni framework ya Python inayokuja na ORM (Object-Relational Mapper). Hii inamaanisha unaweza kuandika class za Python (zinazoitwa models) ambazo Django huzitafsiri kuwa mabehewa ya data (tables) kwenye database.
Kwa mfano:
class Chakula(models.Model):
jina = models.CharField(max_length=100)
bei = models.DecimalField(max_digits=6, decimal_places=2)
Model hiyo inaweza kuwa sawa na jedwali kwenye database lenye safu jina na bei.
2️⃣ ORM ni Nini?
ORM (Object-Relational Mapping) ni njia ya kubadilisha data kati ya mfumo wa OOP (kama Python classes) na relational database (kama SQLite au PostgreSQL).
Kwa Maneno Rahisi:
Badala ya kuandika SQL kama:
INSERT INTO menu_item (jina, bei) VALUES ('Wali', 3500);
Ungeandika kwa Django:
MenuItem.objects.create(jina='Wali', bei=3500)
➡️ Django inachukua hiyo code na inaigeuza kuwa SQL kwa nyuma yako.
3️⃣ Django hutumia Database gani?
Kwa chaguo la mwanzo (default), Django hutumia:
-
SQLite – ni database ya file moja. Hufaa kwa development au project ndogo.
Lakini unaweza kubadilisha na kutumia:
-
PostgreSQL – inapendekezwa kwa project kubwa.
-
MySQL
-
Oracle
Haya yote yanawezekana kwa kubadilisha DATABASES katika settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
Maana ya kila kipengele:
-
'default'– Hii ni database kuu inayotumika na Django. -
'ENGINE'– Inaeleza aina ya database inayotumika.
✅django.db.backends.sqlite3inamaanisha SQLite, ambayo ni database ndogo inayotunza data kwenye faili moja tu. -
'NAME'– Inaonyesha mahali pa faili la database.
✅BASE_DIR / 'db.sqlite3'inamaanisha faili la database lipo kwenye mzizi wa project, likiitwadb.sqlite3.
Kwa kifupi:
Django itatumia SQLite kama database, na data zote zitahifadhiwa kwenye faili moja linaloitwa db.sqlite3 ndani ya project.
4️⃣ Model ni Nini?
Katika Django:
Model ni class inayowakilisha jedwali katika database.
Kila property ya model ni safu (column) ya jedwali.
Mfano wa model ya orodha ya chakula:
class MenuItem(models.Model):
jina = models.CharField(max_length=100)
bei = models.DecimalField(max_digits=6, decimal_places=2)
muda_unapatikana = models.CharField(max_length=50)
➡️ Hii itatengeneza jedwali la menu_menuitem kwenye database yako.
? Muhtasari
-
Django hutumia ORM kuficha ugumu wa SQL.
-
Unaweza kutumia SQLite, PostgreSQL, MySQL n.k.
-
Model ni Python class inayotafsiriwa kuwa jedwali.
-
ORM hukuwezesha kusoma/kuandika data kwa Python badala ya SQL.
? Somo Linalofuata:
Kuunda Model ya Menu kwa Ajili ya Hoteli
Tutaunda class ya MenuItem katika app ya menu na kuiunganisha na database yetu kwa kutumia migrations.