Flask Academy · Pelajaran

Tentukan Relasi dan Kunci Asing

Hubungkan model dengan asosiasi satu-ke-banyak.

Pelajaran 3 dari 413 langkah

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 = user

Cascade 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! 🎉

Gratis untuk memulai

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

  1. Ambil Baris dengan query dan get
  2. Filter, Urutkan, dan Batasi Hasil
  3. Tentukan Relasi dan Kunci Asing
  4. Join dan Pemuatan Malas vs Cepat
← Kembali ke Flask Academy