Modeller ve Geçişler
Veritabanını tanımlayın ve geçişini yapın
Modeller ve Geçişler, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 2. 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, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Django Modelleri
Django'da bir model, veritabanı tablosunun yapısını tanımlayan bir Python sınıfıdır. Her öznitelik bir alandır. Modeller, bir uygulamanın models.py dosyasında bulunur.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
print('Post model defined')Alan Türleri
Django, sütun türleriyle eşleşen birçok alan türü sağlar.
- Kısa metinler için
CharField(max_lengthgerektirir) - Uzun metinler için
TextField IntegerField,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')Örtük Birincil Anahtar
Django, her modele otomatik artan bir id birincil anahtarı ekler; bu nedenle genellikle birincil anahtarı kendiniz tanımlamanız gerekmez.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
# 'id' is added automatically
print('id field is automatic')Alan Seçenekleri
Alanlar, davranışı ve doğrulamayı denetlemek için default, null, blank ve unique gibi seçenekleri kabul eder.
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')Tarihler
DateTimeField(auto_now_add=True), bir satırın ilk oluşturulduğu zamanı kaydeder. auto_now=True ise her kaydetme işleminde değeri günceller.
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')İlişkiler
Modelleri bire çok ilişkisi için ForeignKey ile bağlayın. on_delete, başvurulan satır silindiğinde Django'nun ne yapacağını belirtir.
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')Veri Geçişleri Nedir?
Veri geçişleri, Django'nun model değişikliklerini veritabanı şeması değişikliklerine dönüştürme yöntemidir. Veritabanınız için sürüm denetimi görevi görürler.
# Migrations record schema changes over time
# so the database matches your models
print('Migrations track schema changes')makemigrations
python manage.py makemigrations, modellerinizi inceler ve değişiklikleri açıklayan veri geçişi dosyaları oluşturur.
# python manage.py makemigrations
# -> blog/migrations/0001_initial.py
print('makemigrations writes migration files')migrate
python manage.py migrate, bekleyen veri geçişlerini veritabanına uygular ve tabloları oluşturur veya değiştirir.
# python manage.py migrate
# -> Applying blog.0001_initial... OK
print('migrate applies changes to the DB')Veri Geçişi İş Akışı
Döngü şöyledir: models.py dosyasını düzenleyin, makemigrations komutunu çalıştırın, ardından migrate komutunu çalıştırın. Modelleriniz her değiştiğinde bu işlemi tekrarlayın.
# 1. Change models.py
# 2. python manage.py makemigrations
# 3. python manage.py migrate
print('Edit, make, migrate')Modelleri Sorgulama
Her model, sorgular için objects adlı bir yönetici alır: Post.objects.all(), .filter(), .get() ve .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')Hızlı Kontrol
Veri geçişleri bilginizi sınayın.
Özet
Modeller tanımladınız ve bunları veritabanına aktardınız.
- Modeller, türleri belirtilmiş alanlara sahip
models.pyiçindeki sınıflardır - Django otomatik bir
idbirincil anahtarı ekler ForeignKeymodelleri bağlar;on_deletezincirleme davranışı belirlermakemigrationsve ardındanmigrate, veritabanını eşitlerModel.objectsverileri sorgular
Sıkça Sorulan Sorular
“Modeller ve Geçişler” dersi ücretsiz mi?
Evet — “Modeller ve Geçişler” 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 Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Modeller ve Geçişler” dersinde ne öğreneceğim?
Veritabanını tanımlayın ve geçişini yapın Python 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.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python 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 2. dersidir.
“Modeller ve Geçişler” 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 Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python 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
- Projeler ve Uygulamalar
- Modeller ve Geçişler
- Görünümler ve URL'ler
- Django Yönetim Paneli