Django'ya Giriş: Okul Örneği ile Project, App, URL ve View Mantığı
"Dijital Okul Panosu" projesi üzerinden Django'nun temel yapı taşlarını (Project, App, URL, View) anlatan, blogunuzda veya ders notu olarak öğrencilerinizle paylaşabileceğiniz kapsamlı bir eğitim makalesi taslağı.
Teknik terimler (Project, App, URL, View) somut bir okul benzetmesiyle anlatarak öğrencilerin zihninde kalıcı olmasını hedeflemektedir.
Merhaba arkadaşlar! Bugün Python'un en güçlü web çatısı olan Django'ya giriş yapıyoruz. Web siteleri karmaşık görünse de, Django ile çalışırken mantık aslında günlük hayattaki bir "Okul Binası" gibidir.
Bu dersimizde, okul koridorlarındaki duyuru panosunun dijital halini, yani bir "Dijital Okul Panosu" uygulamasını sıfırdan geliştireceğiz.
Temel Kavramlar: Okul Analojisi
Kod yazmaya başlamadan önce, Django'nun mimarisini okulumuza benzetelim:
Project (Proje): Okulun kendisidir. Binanın temeli, elektrik ve su tesisatıdır (
settings.py).App (Uygulama): Okuldaki birimlerdir. Kütüphane, Kantin veya Müdür Yardımcısı odası gibi. Her biri farklı bir iş yapar.
Views (Görünüm): Odaya girdiğinizde gerçekleşen işlemdir. Kantine gidip (Request) tost istediğinizde, kantincinin size tost vermesi (Response) bir "View" olayıdır.
URLs (Yönlendirme): Koridordaki tabelalardır. Hangi kapının nereye gittiğini gösterir. "Kantine gitmek için düz git, sağa dön" der.
Hadi başlayalım!
Adım 1: Okulun Temelini Atalım (Startproject)
İlk işimiz, projemizin iskeletini oluşturmak. Terminali açın ve aşağıdaki komutu yazın:
django-admin startproject okul_portali
cd okul_portali
Artık okul_portali adında bir klasörümüz ve içinde manage.py adında bir yönetim dosyamız var. Bu dosya bizim şantiye şefimizdir.
Adım 2: Birim Ekleyelim (Startapp)
Okulumuz (Proje) hazır ama içi boş. Şimdi duyuruları yönetecek özel bir birim (App) kuralım. Terminale şu komutu yazalım:
python3 manage.py startapp duyurular
Önemli: Django'ya "Ben yeni bir birim kurdum, haberin olsun" dememiz lazım. Bunun için proje klasöründeki settings.py dosyasını açın ve INSTALLED_APPS kısmına uygulamanızı ekleyin:
# okul_portali/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... diğerleri ...
'duyurular', # <-- Bunu ekledik!
]
Adım 3: İşin Mantığını Kuralım (Views.py)
Şimdi "Duyurular" biriminin içine girelim ve ziyaretçi geldiğinde ne yapacağını söyleyelim. duyurular/views.py dosyasını açın ve aşağıdaki kodları yazın.
Burada iki farklı sayfa (View) oluşturuyoruz: Biri Ana Sayfa, diğeri Yemek Listesi.
# duyurular/views.py
from django.http import HttpResponse
# Ana sayfa fonksiyonu
def ana_sayfa(request):
return HttpResponse("<h1>📢 Okul Duyuru Panosu</h1><p>Hoş geldiniz! Bugün hava güneşli, dersler 08:30'da başlıyor.</p>")
# Yemek listesi fonksiyonu
def yemek_listesi(request):
return HttpResponse("<h2>🍛 Günün Menüsü</h2><p>Mercimek Çorbası<br>Tavuk Sote<br>Pilav<br>Ayran</p>")
Not: HttpResponse, HTML kodlarını tarayıcıya doğrudan göndermemizi sağlar.
Adım 4: Tabelaları Asalım (URL Yapılandırması)
Fonksiyonlarımız hazır ama kullanıcılar bu sayfalara nasıl ulaşacak? Adres çubuğuna ne yazmalılar? İşte burada URL devreye giriyor.
Bu işlemi iki aşamada yapacağız:
A. Uygulama İçi Yönlendirme
Önce duyurular klasörünün içine urls.py adında yeni bir dosya oluşturun ve şunları yazın:
# duyurular/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.ana_sayfa, name='ana_sayfa'), # Site açılınca direkt burası gelir
path('yemek/', views.yemek_listesi, name='yemek'), # /yemek yazınca menü gelir
]
B. Ana Kapı Yönlendirmesi (Include)
Şimdi ana projenin (okul_portali/urls.py) dosyasına gidip, gelen trafiği "Duyurular" uygulamasına yönlendirelim.
# okul_portali/urls.py
from django.contrib import admin
from django.urls import path, include # include'u eklemeyi unutmayın!
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('duyurular.urls')), # Ana sayfaya gelen her şeyi 'duyurular'a gönder
]
Burada include kullanarak şunu demiş olduk: "Ana kapıdan giren herkesi, 'Duyurular' koridoruna yönlendir. Gerisine oradaki tabelalar (duyurular/urls.py) baksın."
Adım 5: Okulu Açalım! (Runserver)
Her şey hazır! Şimdi sunucumuzu çalıştırıp sonucu görelim.
python3 manage.py runserver
Tarayıcınızı açın ve şu adreslere gidin:
http://127.0.0.1:8000/ -> Karşınıza "Okul Duyuru Panosu" başlığı gelecek.http://127.0.0.1:8000/yemek/ -> Karşınıza "Günün Menüsü" gelecek.
Sonuç
Tebrikler! Django ile ilk MVT (Model-View-Template) yapısına giriş yaptınız. Bugün veritabanı (Model) veya HTML dosyaları (Template) kullanmadan, sadece URL ve View mantığıyla çalışan dinamik bir yapı kurduk.
Kodla kalın!
Yorumlar
Yorum Gönder