0Pricing
Python Academy · Ders

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_length gerektirir)
  • 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.py içindeki sınıflardır
  • Django otomatik bir id birincil anahtarı ekler
  • ForeignKey modelleri bağlar; on_delete zincirleme davranışı belirler
  • makemigrations ve ardından migrate, veritabanını eşitler
  • Model.objects verileri 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

  1. Projeler ve Uygulamalar
  2. Modeller ve Geçişler
  3. Görünümler ve URL'ler
  4. Django Yönetim Paneli
← Python Academy Sayfasına Dön