İlişkileri ve Yabancı Anahtarları Tanımlama
Modelleri bire çok ilişkileriyle bağlayın.
İlişkileri ve Yabancı Anahtarları Tanımlama, CoddyKit'te ücretsiz bir Flask Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Flask Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Flask Academy kursu toplamda 4 dersten oluşur.
Birlikte ait olan satırlar
Gerçek veriler birbiriyle bağlantılıdır: bir kullanıcının birçok gönderisi, bir siparişin birçok ürünü olabilir. Bir relationship, modellerinizde bu satırları birbirine bağlar. 🔗
ForeignKey
Yabancı anahtar, üst öğenin kimliğini tutan alt öğe sütunudur. Veritabanına kaydedilen gerçek bağlantı budur.
user_id = db.Column(db.Integer, db.ForeignKey("user.id"))Doğru tabloyu gösterme
ForeignKey içinde hedefi table.column biçiminde belirtin; Flask-SQLAlchemy'nin oluşturduğu küçük harfli tablo adını kullanın.
db.ForeignKey("user.id")relationship ekleme
relationship() yardımcısı bu anahtarı kolay gezinmeye dönüştürür; böylece bağlantılı nesnelere öznitelik olarak erişebilirsiniz.
posts = db.relationship("Post")Uygulamada bire çok ilişkisi
Yabancı anahtarı çok tarafına, relationship'ı ise tek tarafına koyun. Bir kullanıcı, birçok gönderi.
class Post(db.Model):
user_id = db.Column(db.ForeignKey("user.id"))Üst öğeden alt öğelere gezinme
Bağlantı kurulduktan sonra bir üst öğenin alt öğelerini liste gibi okuyabilirsiniz. SQLAlchemy, bu özniteliğe eriştiğinizde onları sizin için getirir. ✨
user = User.query.first()
for p in user.posts:
print(p.title)backref ile geri gezinme
Bir relationship'a backref eklediğinizde alt öğe, üst öğesine ulaşmak için hemen bir yol kazanır.
posts = db.relationship("Post", backref="author")Backref kullanma
Bu backref, temiz bir öznitelik aracılığıyla alt öğeden doğrudan sahibine gitmenizi sağlar. 🙌
post = Post.query.first()
print(post.author.name)Nesneyle atama
relationship özniteliğini bir nesneye ayarlayarak satırları bağlayın. SQLAlchemy, yabancı anahtarı sizin için doldurur.
post = Post(title="Hi")
post.author = userSilmede kademeli işlem
Bir üst öğe silindiğinde alt öğelerinin de kaldırılması için kademeli silme ayarlayın; böylece veritabanı düzenli ve tutarlı kalır.
db.relationship("Post", cascade="all, delete")Anahtar ve relationship karşılaştırması
Yabancı anahtar bağlantıyı SQL'de saklar; relationship ise bunun üzerindeki Python kolaylık katmanıdır. Genellikle ikisini de kullanmak istersiniz.
Hızlı kontrol
Bir kullanıcı birçok gönderi yazabilir. Yabancı anahtar sütunu nerede bulunur?
Özet: Modelleri bağlama
Artık tabloları bir yabancı anahtarla bağlayabilir, relationship ve backref ile aralarında gezinebilir, silmeleri cascade ile denetleyebilirsiniz. Modeller birleşti! 🎉
Sıkça Sorulan Sorular
“İlişkileri ve Yabancı Anahtarları Tanımlama” dersi ücretsiz mi?
Evet — “İlişkileri ve Yabancı Anahtarları Tanımlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Flask Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Flask Academy kursu toplamda 4 dersten oluşur.
“İlişkileri ve Yabancı Anahtarları Tanımlama” dersinde ne öğreneceğim?
Modelleri bire çok ilişkileriyle bağlayın. Flask Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Flask Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Flask Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“İlişkileri ve Yabancı Anahtarları Tanımlama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Flask Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Flask Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- query ve get ile Satır Getirme
- Sonuçları Filtreleme, Sıralama ve Sınırlandırma
- İlişkileri ve Yabancı Anahtarları Tanımlama
- Birleştirmeler ve Tembel ile İstekli Yükleme