Django güçlü, açık kaynaklı, Python-tabanlı bir web çerçevesidir ve web siteleri ile web uygulamaları oluşturma ve yönetme sürecini kolaylaştırır. Django uygulamaları ölçeklenebilir, yüksek performanslı ve güvenlidir. Ayrıca çerçevenin her bir parçası hakkında gerçekten iyi bir belgelendirme ile birlikte gelir.
Hazırladığımız Django serimizde, temel blog özelliklerine sahip örnek bir web sitesi uygulayarak Django'yu keşfediyorduk. Bu kılavuzda, Django uygulamamız için örnek bir görünüm oluşturma adımlarını inceleyeceğiz.
Gereksinimler
Bu kılavuzu takip etmek için aşağıdaki bileşenlere ihtiyacınız olacak.
- Uygun yapılandırmalara sahip bir Ubuntu sunucusu. Şu konuda daha fazla bilgi edinin: bir Ubuntu sunucusu kurma.
- Düzgün yapılandırılmış bir Python geliştirme ortamı.
- Bir veritabanı sunucusu, örneğin, MySQL. Bu kılavuz şu konuyu detaylandırmaktadır: bir Ubuntu sunucusunda MySQL kurulumu ve yapılandırılması.
Bu kılavuz, Django serimizin bir devamıdır. İlk olarak, şu konulardaki önceki kılavuzlara göz atmak faydalı olacaktır: Django kurulumu, Django veritabanı bağlantısı kurma, modeller oluşturma, ve Django Yönetici Arayüzünü etkinleştirme.
Bu kılavuzda, web uygulamasının web isteklerini düzgün bir şekilde işlemesini ve uygun yanıtı döndürmesini sağlayacak Django görünümlerinin nasıl oluşturulacağını göstereceğiz. Şurada belirtildiği gibi: Django resmi belgeleri, bir web yanıtı bir web sayfasının HTML içeriği, bir yönlendirme veya bir HTTP hatası olabilir. Python yolları içinde oldukları sürece görünüm fonksiyonlarını depolamak için sabit bir yer yoktur. Ancak, dosyaları adlandırmak ve yerleştirmek için popüler kurallar vardır. Bu kılavuz bu kuralları takip edecektir.
Adım 1. Sanal Ortamı Aktifleştirme
Django en iyi bir Python sanal ortamında çalıştırılır. Django uygulamamız sample_app özel bir sanal ortam içinde kurulmuştur. İlk olarak, sanal ortamı aktifleştirin:
|
1 2 3 |
cd sample_app/ . sample_app_env/bin/activate |
Adım 2. Görünüm Fonksiyonları Oluşturma
Şu dizine gidin: random_app (blog web sitemizin modellerini barındıran dizin):
|
1 |
cd random_app/ |
Burada, views.py dosyası görünümlerimizi oluşturmak için gerekli kodları barındıracaktır. Bunu bir metin düzenleyicide açın:
|
1 |
nano views.py |

Şu kütüphaneden render() fonksiyonuna ihtiyacımız var: django.shortcuts , bu yüzden ilk satır aynı kalır. render() fonksiyonu, uygun bir HttpResponse nesnesi olarak döndürülmek üzere hem bir şablonu hem de bir bağlamı birleştirmeye yardımcı olur.
İlk görünüm, dizin sayfasına gelen kullanıcıları karşılayacaktır. İçe aktarmamız gereken fonksiyon: HttpResponse(), şu Django kütüphaneden: http:
|
1 2 3 4 5 6 7 8 |
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse(Karşılama sayfasına ulaştınızthe welcome page') def individual_post(request): return HttpResponse('Bireysel gönderiler burada görünecekhere') |

Dosyayı kaydedin ve düzenleyiciyi kapatın.
Adım 3. URL'leri Görünümlerle Eşleme
Şu anda bu fonksiyonlara atanmış bir URL yok, bu yüzden onlara erişilemez. Başka bir blok eklememiz gerekiyor: urlpatterns URL yapılandırma dosyası içinde. Python'da bu, şu şekilde adlandırılır: URLconf (URL yapılandırma) dosyası.
Django'nun kullanılacak kök URLconf modülünü belirlemesi gerekir. Ardından, bir liste yapısındaki tüm URL kalıplarını içeren urlpatterns yapısına bakacaktır. Django daha sonra ilk eşleşmeyi bulana kadar dosyayı tarar. Bir eşleşme bulduğunda, Django bununla ilişkili görünümü arayacaktır. Bu görünüm fonksiyonu, URL kalıbıyla ilgili verileri ve bir HttpRequest nesnesini alacaktır. Bu sürecin herhangi bir noktasındaki hata, onu bir hata işleme görünümüne yönlendirecektir..
Metin düzenleyicide urls.py dosyasını ( random_app dizinindeki) açın:
|
1 |
nano urls.py |
Aşağıdaki kodu girin:
|
1 2 3 4 5 6 7 |
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('post/', views.individual_post, name='individual_post') ] |

Dosyayı kaydedin ve düzenleyiciyi kapatın.
Bu işlem tamamlandıktan sonra, URL dosyasının yolunu sample_app dizininin URLconf dosyasına da dahil etmemiz gerekecek. Aksi takdirde Django uygulamamız bunu tanımayacaktır. Bunun nedeni, URLconf dosyasının, sample_app ayarlar dosyasında ROOT_URLCONF olarak ayarlanmış olmasıdır.
Uygulamamızın dizinine gidin: sample_app:
|
1 |
cd sample_app/sample_app/sample_app/ |
![]()
Şu dosyayı bir metin düzenleyicide açın: urls.py in a text editor:
|
1 |
nano urls.py |

Dosyaya aşağıdaki kodu girin:
|
1 2 3 4 5 6 7 |
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('random_app.urls')) ] |

Değişikliklerimizi test edelim. Django uygulama sunucusunu şu adreste başlatın: localhost:8000:
|
1 |
python manage.py runserver localhost:8000 |

Şu URL'ye gidin:
|
1 |
localhost:8000 |

Gönderi için URL'yi kontrol edin:
|
1 |
localhost:8000/posts |
Adım 4. Blog Gönderisi Oluşturma
URL kalıplarımızı oluşturduk ve iş akışlarını inceledik. Şimdi örnek bir blog ekleme ve sonucu görme zamanı.
Yönetici panelinden şu sayfaya gidin: random_app sayfası:
|
1 |
localhost:8000/admin/random_app/ |

Şu satırdaki +Add bağlantısına tıklayın ( Posts satırı):

Yeni web sayfasında, aşağıdaki alanlardan oluşan bir form sunulacaktır.
- Title: Blog gönderisinin başlığı.
- Slug: Geçerli web adresinin insan tarafından okunabilen anahtar kelimeler içeren kısmını ifade eder. Genellikle slug'lar gönderinin başlığına göre oluşturulur.
- Content: Blog gönderisinin gövdesi.
- Author: İlgili kullanıcı adı.
Gönderiyi göndermek için SAVE butonuna tıklayın:

Adım 5. Veritabanındaki Verileri Görüntüleme
Bu sonraki bölümde veritabanımızla çalışacağız. Django için ayrılmış kullanıcı olarak MySQL veritabanına giriş yapın:
|
1 |
mysql -u sample_app_user -p |

Gönderimizin veritabanına başarıyla kaydedilip kaydedilmediğini doğrulayalım:
|
1 |
USE sample_app_data; |

|
1 |
SELECT * FROM random_app_post; |

İşte bu kadar! Gönderi başarıyla kaydedildi! Artık MySQL kabuğundan çıkabilirsiniz.
Adım 6. Ek Görünüm İnce Ayarları
Görünümlerimizle yapabileceğimiz birkaç şey daha var. Dosyayı bir metin düzenleyicide açın:
|
1 |
nano views.py |
Kod şu şekilde görünmelidir:
|
1 2 3 4 5 6 7 8 9 10 |
from django.shortcuts import render from django.http import HttpResponse from .models import Post def index(request): return HttpResponse('Hello, welcome to the index page.') def individual_post(request): recent_post = Post.objects.get(id__exact=1) return HttpResponse(recent_post.title + ': ' + recent_post.content) |

Burada, import ifadesini Post için ekledik. HttpResponse içindeki tırnaklı dize de blog gönderimizden gelen verilerle değiştirildi. Verilere başvurmak için, ilişkili nesneyle birlikte blog gönderisi kimliğini kullanıyoruz. Kimlik, recent_post değişkeninde saklanıyor. Artık alan adının sonuna nokta ayırıcı ekleyerek nesnenin belirli alanlarını çekebiliriz.
Değiştirdikten sonra değişiklikleri doğrulayalım. Django sunucusunu başlatın:
|
1 |
python manage.py runserver localhost:8000 |

Şimdi Posts sayfasına erişin:
|
1 |
localhost:8000/posts |

Oluşturduğumuz blog gönderisini göstermelidir.
Adım 7. Projeden Çıkış
Django sunucusundan çıkmak için, terminalden Ctrl + C tuşlarına basın. Python sanal ortamını devre dışı bırakmak için aşağıdaki komutu çalıştırın:
|
1 |
deactivate |
Son Düşünceler
Bu kılavuzda, görünümler oluşturmayı, URL şablonlarını eşlemeyi ve web sayfasında veritabanından metin görüntülemeyi başarıyla gösterdik: random_app içinde Django.Bunlar, anlaşılması ve uzmanlaşılması gereken temel Django kavramlarıdır.
Django uygulamaları oluşturmanıza ve yönetmenize yardımcı olacak diğer kaynaklar aşağıdadır:
- Veritabanı Bağlantısı ile Django Uygulaması Oluşturma: Bir Eğitim
- Ubuntu üzerinde Docker ile Django ve Gunicorn Uygulaması Oluşturma
- Docker, Nginx ve Let’s Encrypt ile bir Django Uygulaması Nasıl Güvenli Hale Getirilir ve Ölçeklendirilir
Keyifli Kodlamalar!

Yorumlar
Henüz yorum yapılmamış. İlk siz olun.