Tentukan Relasi dan Kunci Asing
Hubungkan model dengan asosiasi satu-ke-banyak.
Tentukan Relasi dan Kunci Asing adalah pelajaran Flask Academy gratis di CoddyKit. Ini adalah pelajaran 3 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 Flask Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Flask Academy mencakup 4 pelajaran total.
Baris yang Saling Berkaitan
Data nyata saling terhubung: seorang pengguna memiliki banyak post, dan sebuah pesanan memiliki banyak item. Sebuah relationship menghubungkan baris-baris ini dalam model Anda. 🔗
Kunci Asing
Foreign key adalah kolom pada entitas anak yang menyimpan id entitas induk. Inilah tautan sebenarnya yang disimpan di basis data.
user_id = db.Column(db.Integer, db.ForeignKey("user.id"))Tunjuk Tabel yang Tepat
Di dalam ForeignKey, tentukan target sebagai table.column, menggunakan nama tabel huruf kecil yang dibuat Flask-SQLAlchemy.
db.ForeignKey("user.id")Tambahkan relationship
Pembantu relationship() mengubah kunci tersebut menjadi navigasi yang mudah, sehingga Anda dapat mengakses objek yang terhubung sebagai atribut.
posts = db.relationship("Post")Satu-ke-Banyak dalam Praktik
Letakkan foreign key di sisi yang banyak dan relationship di sisi yang satu. Satu pengguna, banyak post.
class Post(db.Model):
user_id = db.Column(db.ForeignKey("user.id"))Navigasikan dari Induk ke Anak
Setelah terhubung, baca anak-anak suatu induk seperti membaca sebuah daftar. SQLAlchemy mengambilnya untuk Anda saat atribut tersebut diakses. ✨
user = User.query.first()
for p in user.posts:
print(p.title)Kembali dengan backref
Tambahkan backref ke relationship agar entitas anak segera memiliki cara untuk mengakses induknya.
posts = db.relationship("Post", backref="author")Gunakan Backref
Backref tersebut memungkinkan Anda berpindah langsung dari entitas anak kembali ke pemiliknya melalui atribut yang rapi. 🙌
post = Post.query.first()
print(post.author.name)Tetapkan Berdasarkan Objek
Hubungkan baris dengan menetapkan atribut relationship ke sebuah objek. SQLAlchemy akan mengisi foreign key untuk Anda.
post = Post(title="Hi")
post.author = userCascade saat Penghapusan
Tetapkan cascade agar penghapusan entitas induk juga dapat menghapus anak-anaknya, sehingga basis data tetap rapi dan konsisten.
db.relationship("Post", cascade="all, delete")Kunci vs Relationship
Foreign key menyimpan tautan di SQL; relationship adalah lapisan kemudahan Python di atasnya. Biasanya Anda memerlukan keduanya.
Pemeriksaan Cepat
Satu pengguna dapat menulis banyak post. Di mana kolom foreign key berada?
Rangkuman: Menghubungkan Model
Sekarang Anda menghubungkan tabel dengan foreign key, menavigasinya melalui relationship dan backref, serta mengendalikan penghapusan dengan cascade. Model-model pun bersatu! 🎉
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Tentukan Relasi dan Kunci Asing” gratis?
Ya — teks lengkap “Tentukan Relasi dan Kunci Asing” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Flask Academy, upgrade ke CoddyKit PRO. Kursus Flask Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Tentukan Relasi dan Kunci Asing”?
Hubungkan model dengan asosiasi satu-ke-banyak. Kamu berlatih Flask 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 Flask Academy?
Tidak diperlukan pengalaman sebelumnya. Flask 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 3 dari 4.
Berapa lama pelajaran “Tentukan Relasi dan Kunci Asing” 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 Flask Academy ini?
Ya. Setiap pelajaran Flask 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
- Ambil Baris dengan query dan get
- Filter, Urutkan, dan Batasi Hasil
- Tentukan Relasi dan Kunci Asing
- Join dan Pemuatan Malas vs Cepat