Katika somo hili tutajifunza jinsi Django hutumia migrations kuunda na kubadilisha tables kwenye database kulingana na models tunazoandika. Tutapitia maana ya migration, hatua za kuitumia, umuhimu wake, misingi ya makemigrations na migrate, pamoja na mfano halisi kutoka kwenye project yetu ya pybongo (app: menu).
Django haitengenezi table moja kwa moja mara tu unapounda model; badala yake hutumia mfumo wa migrations unaosimamia mabadiliko yote ya database. Hii inafanya kazi kuwa salama, rahisi, na isiyohitaji kuandika SQL mwenyewe. Somo hili litakufundisha jinsi migrations zinavyofanya kazi na namna ya kuzitumia kwa usahihi.
Nataka ukumbuke kuwa, kwneye somo lililopita nimekueleza kuwa model ni class ambayo ndio inaeleza structure ama muundo wa table zetu kwneye database. Sasa baada ya kutengeneza structure hiyo ama muundo wa hiyo table, hapa tutajifunza kufanya migration yaani kutengeneza table zenyewe kulingana na model. ni sawa na kusema kuwa tunazifanya model zituletee kitu tunachokitaka.
Migration ni faili maalum linalotengenezwa na Django ili kurekodi na kutekeleza mabadiliko yote unayofanya kwenye model. Hili faili linaelezea Django jinsi ya:
Kuunda table mpya
Kuongeza field mpya kwenye table
Kubadilisha field
Kufuta field au table
Kwa kifupi:
Migration = Maelezo ya mabadiliko ya database yanayotokana na models.
Huhifadhi historia ya mabadiliko ya database
Huondoa haja ya kuandika SQL manually
Huleta usawa kati ya code na database
Huwawezesha developers wengi kufanya kazi kwenye project moja bila migongano
Django hutumia hatua mbili muhimu:
Baada ya kuunda au kubadilisha model, andika:
python manage.py makemigrations
Hii inasoma models zako na kutengeneza faili kama:
menu/migrations/0001_initial.py
Faili hili linaelezea Django kuwa unataka:
Kutengeneza table lenye fields ulizozitaja
Kuandaa structure ya table kwa database
faili hili utalikuta kwneye folda linaloitwa migrations. na kila tutakapofanya migration basi faili ligine litatengenezwa.
Baada ya kukamilisha hatua ya kwanza, sasa unaitekeleza kwa:
python manage.py migrate
Amri hii:
Huchukua migrations zote
Huzitekeleza katika database halisi (sqlite, mysql, postgresql n.k.)
Hutengeneza au kusasisha tables
Model tuliyotengeneza:
from django.db import models
class MenuItem(models.Model):
jina = models.CharField(max_length=100)
maelezo = models.TextField(blank=True)
muda_upatikanaji = models.CharField(max_length=50)
bei = models.DecimalField(max_digits=10, decimal_places=2)
def __str__(self):
return self.jina
Hatua:
python manage.py makemigrations
python manage.py migrate
Matokeo:
Django inaunda table mpya kwenye database inayoitwa menu_menuitem
Ina fields: jina, maelezo, muda_upatikanaji, bei
Hapo utaona mabadiliko kwnye faili la sqlite3 ambalo ndio faili la database. Huko mbeleni tutajifunza kuhusu aina nyingine za database.
...
Jiunge nasi WhatsApp kupata update zetu
Umeionaje Makala hii.. ?
Katika somo hili tutaangalia jinsi ya kutengeneza fomu ya HTML kwa ajili ya kuingiza data kwenye jedwali la MenuItem, pamoja na kutengeneza view itakayopokea data hiyo na kuihifadhi kwenye database. Pia tutaunganisha form na URL route.
Soma Zaidi...Katika somo hili utakwend akujifunz amaana ya module, kazi zake, aina zake na jinsi ya kuandika modile
Soma Zaidi...Katika somo hili utakwend akujifunza maana ya object, na sheria za kuandika object.
Soma Zaidi...Katika somo hili utakwenda kujifunz ajinsi ya kusoma mafaili na mitindo mbalimbali ya kusoma data
Soma Zaidi...Katika somo hili utajifunza maana ya variable, na sheria za kutengeneza variable kwenye python. Pia utajifunza maneno ambayo hayafai kutumiwa kama variable
Soma Zaidi...Katika somo hili utakwend akujifunz anamna ya kuwez akupata taarifa zinazohusu faili
Soma Zaidi...Katika somo hili uatajifunza jinsi gani unaweza kutumia view kma logic kuuma data kwenye template
Soma Zaidi...Katika somo hili tutajifunza njia mbili muhimu za kuongeza data kwenye database katika project yetu ya pybongo (app: menu). Njia hizi ni: Kutumia Django Admin Kutumia Django Shell Utafahamu pia jinsi ya kusajili models kwenye admin, jinsi ya kuingia admin panel, na namna ya kutengeneza entries mpya za MenuItem.
Soma Zaidi...Katika somo hili utajifunz ajinsi ya kutengeneza folda, faili na kuweka data kwneye faili
Soma Zaidi...Katika somo hili utakwenda kujifunza kutengeneza htmk form pamoja na kuituma.
Soma Zaidi...