Bu proje, Python'ın popüler web çatısı Django'nun temel mimarisi olan MVT (Model-View-Template) yapısını, Sınıf Tabanlı Görünümleri (Class-Based Views - CBV) ve Şablon Kalıtımını (Template Inheritance) uygulamalı olarak gösteren modüler bir web sitesi çalışmasıdır.
| Rota (URL) | Görünüm Sınıfı | Şablon | Açıklama |
|---|---|---|---|
/ |
HomePageView |
home.html |
Anasayfa karşılama ekranı |
/about/ |
AboutPageView |
about.html |
Hakkımızda tanıtım sayfası |
/admin/ |
Django Admin | Yerleşik | Django dahili yönetim paneli |
Django/
│
├── run_server.bat # Sunucuyu ve tarayıcıyı tek tıkla başlatan Windows scripti
├── requirements.txt # Python bağımlılıkları (Django)
├── .gitignore # Git dışlama kuralları
├── README.md # Proje dokümantasyonu
│
└── jang/ # Django proje kök dizini
├── manage.py # Django yönetim CLI aracı
├── db.sqlite3 # SQLite veritabanı
│
├── mywebsite/ # Ana proje yapılandırması
│ ├── settings.py # Uygulama ayarları & şablon dizinleri
│ ├── urls.py # Ana URL yönlendiricisi (pages.urls dahil)
│ ├── asgi.py # Asenkron web sunucusu arabirimi
│ └── wsgi.py # WSGI web sunucusu arabirimi
│
├── pages/ # Sayfa yönetimi uygulaması (App)
│ ├── views.py # TemplateView tabanlı sınıf görünümleri
│ ├── urls.py # Sayfa içi URL rotaları
│ ├── models.py # Veritabanı modelleri
│ ├── admin.py # Admin arayüzü kayıtları
│ └── test_pages.py # Sayfa testleri
│
└── templates/ # HTML şablonları
├── base.html # Ortak menü ve iskelet (Template Inheritance)
├── home.html # Anasayfa içeriği ({% extends 'base.html' %})
└── about.html # Hakkımızda içeriği ({% extends 'base.html' %})
Doğrudan run_server.bat dosyasına çift tıklayın.
Script gerekli kontrolleri yapacak, geliştirme sunucusunu başlatacak ve tarayıcınızda otomatik olarak http://127.0.0.1:8000 adresini açacaktır.
pip install -r requirements.txtcd jang
python manage.py runserverTarayıcınızdan http://127.0.0.1:8000/ adresini ziyaret edebilirsiniz.
-
Class-Based Views (CBV): Standart fonksiyonel görünümler (
def home(request)) yerine, Django'nunTemplateViewsınıfı kullanılarak daha temiz ve genişletilebilir bir kod yapısı oluşturulmuştur:from django.views.generic import TemplateView class HomePageView(TemplateView): template_name = "home.html"
-
Şablon Kalıtımı (DRY Prensibi):
base.htmliçerisinde ortak menü barındırılmış;home.htmlveabout.htmlsayfaları bu yapıyı{% extends "base.html" %}ile miras alarak kod tekrarını önlemiştir.
cd jang
python manage.py test pagesTestler anasayfanın ve Hakkımızda sayfasının açıldığını ve ikisinin de ortak base.html şablonunu kullandığını denetler.
Bu proje bir geliştirme ve öğrenme projesidir. Ayarlar yerel çalışma içindir:
settings.pyiçindekiSECRET_KEYdepoda açıkça duruyor. Yayında bu anahtarı ortam değişkeninden okuyun ve yeni bir anahtar üretin.DEBUG = Truehata ayrıntılarını ziyaretçiye gösterir; yayındaFalseyapın.ALLOWED_HOSTSboştur; yayındaki alan adını ekleyin.db.sqlite3geliştirme veritabanıdır; yayında ayrı bir veritabanı kullanın.
- İlhan Koçaslan — GitHub: @Proaiml