Django templateleri
Last updated
Last updated
Bazı verileri gösterme zamanı! Django bunun için bize faydalı bazı yerleşik template etiketleri sunuyor.
Görüyoruz ki aslında, HTML'de Python kodu yazamayız, çünkü tarayıcılar bunu anlamaz. Tarayıcılar yalnızca HTML'den anlar. Biliyoruz ki Python daha dinamik bir dil iken, HTML oldukça statiktir.
Django template etiketleri Python benzeri yapıların HTML'ye aktarılmasını sağlar, böylece dinamik web sitelerini daha kolay ve hızlı oluşturabiliriz!
Bir önceki bölümde, template'e posts
değişkeni içinde gönderiler listesi verdik. Şimdi, bunu HTML'de göstereceğiz.
Django şablonunda (template) bir değişken (variable) yazdırmak için, değişken adını çift kıvrımlı parantez içinde şu şekilde kullanırız:
Bunu blog/templates/blog/post_list.html
şablonunda deneyelim. Dosyayı kod editöründe açalım ve ikinci <div>
'den üçüncü </div>
'e kadar olan her şeyi {{ posts }}
ile değiştirelim. Ne olduğunu görmek için dosyayı kaydedip sayfayı yenileyelim:
Gördüğümüz sadece bu:
Yani Django bunu bir nesneler listesi olarak algılıyor. Python'a giriş'ten listelerin nasıl gösterildiğini hatırlıyor musun? Evet, döngülerle! Bir Django template ile bunu şöyle yaparsın:
Bunu kendi template'imizle deneyelim.
İşe yarıyor! Fakat bunların daha önce HTML'ye giriş bölümünde oluşturduğumuz statik gönderiler gibi görünmesini istiyoruz. HTML ve template etiketlerini karıştırabiliriz. body
şöyle görünecektir:
{% for %}
ve {% endfor %}
arasına koyduğunuz her şey listedeki her nesne için tekrarlanır. Sayfanı yenile:
Bu sefer biraz daha farklı bir notasyon kullandığımızın farkında mısınız ({{ post.title }}
or {{ post.text }})
)? Böylece Post
modelinde tanımlanan alanlardaki verilere ulaşıyoruz. Ayrıca |linebreaks
(satırsonu), gönderilerin metnini, satır sonlarını paragraflara çeviren bir filtreden geçiriyor.
Web sitemizin İnternet'te hâlâ çalıştığını görmek iyi olacak, değil mi? PythonAnywhere'e yükleyelim yine. Adımları hatırlayalım…
İlk önce kodumuzu Github'a push komutu ile yükleyelim
PythonAnywhere'e bağlanalım ve Bash konsolu'na gidelim (veya yeni bir konsol açalım) ve şunu çalıştıralım:
Son olarak, Web sekmesine gidip uygulamanızın Yenile butonuna basın. (Konsoldan diğer PythonAnywhere sayfalarına ulaşmak için, sağ üst köşedeki menü düğmesini kullanın.) Güncellemeniz https://isminiz.pythonanywhere.com adresinde yayınlanmalıdır - tarayıcıda kontrol edin! Eğer PythonAnywhere sitesindeki gönderilerin içeriği ile lokal sunucunuzda bulunan gönderilerin içeriği aynı değilse sorun değil. Lokal bilgisayarınızdaki veritabanı ile Python Anywhere'deki veritabanı, diğer dosyalarınız gibi eşitlenmiyor.
Tebrikler! Şimdi Django admin üzerinden yeni bir gönderi eklemeyi deneyin (published_date eklemeyi unutmayın!) PythonAnywhere sitenizin Django admininde olduğunuzdan emin olun, https://yourname.pythonanywhere.com/admin. Arkasından gönderileri görebilmek için oradaki sayfanızı yenileyin.
Şiir gibi çalışıyor, değil mi? Gurur duyabiliriz! Şimdi bilgisayar başından bir süre kalkalım, çünkü bir molayı hak ettik. :)