Model dan Migrasi
Definisikan dan migrasikan database
Model dan Migrasi adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Model Django
Model Django adalah kelas Python yang mendefinisikan struktur tabel basis data. Setiap atribut merupakan kolom. Model berada di models.py milik aplikasi.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
print('Post model defined')Jenis Kolom
Django menyediakan banyak jenis kolom yang dipetakan ke jenis kolom basis data.
CharFielduntuk teks pendek (memerlukanmax_length)TextFielduntuk teks panjangIntegerField,BooleanField,DateTimeField
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
views = models.IntegerField(default=0)
print('Fields map to columns')Kunci Utama Implisit
Django secara otomatis menambahkan kunci utama id yang nilainya bertambah otomatis ke setiap model, sehingga Anda jarang perlu mendeklarasikannya sendiri.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
# 'id' is added automatically
print('id field is automatic')Opsi Kolom
Kolom menerima opsi seperti default, null, blank, dan unique untuk mengatur perilaku dan validasi.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200, unique=True)
published = models.BooleanField(default=False)
subtitle = models.CharField(max_length=200, blank=True)
print('Options refine each field')Tanggal
DateTimeField(auto_now_add=True) mencatat kapan suatu baris pertama kali dibuat. auto_now=True memperbaruinya setiap kali disimpan.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
print('Timestamps set automatically')Relasi
Hubungkan model dengan ForeignKey untuk relasi satu-ke-banyak. on_delete memberi tahu Django apa yang harus dilakukan ketika baris yang dirujuk dihapus.
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Post(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
print('ForeignKey links Post to Author')Apa Itu Migrasi?
Migrasi adalah cara Django mengubah perubahan pada model menjadi perubahan pada skema basis data. Migrasi berfungsi sebagai pengendalian versi untuk basis data Anda.
# Migrations record schema changes over time
# so the database matches your models
print('Migrations track schema changes')makemigrations
python manage.py makemigrations memeriksa model Anda dan membuat berkas migrasi yang menjelaskan perubahan tersebut.
# python manage.py makemigrations
# -> blog/migrations/0001_initial.py
print('makemigrations writes migration files')migrate
python manage.py migrate menerapkan migrasi yang tertunda ke basis data, dengan membuat atau mengubah tabel.
# python manage.py migrate
# -> Applying blog.0001_initial... OK
print('migrate applies changes to the DB')Alur Kerja Migrasi
Siklusnya adalah: edit models.py, jalankan makemigrations, lalu jalankan migrate. Ulangi setiap kali model Anda berubah.
# 1. Change models.py
# 2. python manage.py makemigrations
# 3. python manage.py migrate
print('Edit, make, migrate')Melakukan Kueri pada Model
Setiap model mendapatkan pengelola bernama objects untuk melakukan kueri: Post.objects.all(), .filter(), .get(), dan .create().
# Post.objects.all()
# Post.objects.filter(published=True)
# Post.objects.get(id=1)
# Post.objects.create(title='Hello')
print('objects is the query manager')Pemeriksaan Singkat
Uji pengetahuan Anda tentang migrasi.
Ringkasan
Anda telah mendefinisikan model dan memigrasikannya.
- Model adalah kelas di
models.pydengan kolom bertipe - Django menambahkan kunci utama
idsecara otomatis ForeignKeymenghubungkan model;on_deletemengatur perilaku penghapusan berantaimakemigrationslalumigratemenyinkronkan basis dataModel.objectsmelakukan kueri terhadap data
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Model dan Migrasi” gratis?
Ya — teks lengkap “Model dan Migrasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Model dan Migrasi”?
Definisikan dan migrasikan database Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Model dan Migrasi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Proyek dan Aplikasi
- Model dan Migrasi
- View dan URL
- Admin Django