Django İskelet Şablonlar


Django İnclude Yapısı

Artık web sayfaları o kadar karmaşık yapılmıyor ki, tek bir sayfanın şablon ile oluşturmak neredeyse imkansız. Bu duruma şöyle örnek verebiliriz, örneğin footer bölümümüz yani web sitenin alt bölümü her sayfada aynı kalıyorsa tekrar, her şablonda tekrar niye yazalım ? dediğiniz zaman include fonksiyonunu kullanacağız. Php dilini kullananlar bilir, aynı mantıkta çalışmaktadır.

Sırasıyla bir include yapısı oluştralım

1-) Öncelikle her sayfada sabit kullanacağımız html dosyasını oluşturalım : Örneğin ben footer.html oluşturdum.

Her sayfada sabit kullanacağım, içeriğimi belirledim.

2-) İnclude yapısını oluşturdum, şimdi istediğimiz herhangi bir sayfada rahatlıkla kullanabiliriz.

Yukarıdaki gibi istediğiniz şablona rahatlıkla çağırabilirsiniz.


Django İskelet Şablon

Bir web sitesinde sayfaların genel görünümü bir birine benzemektedir. Örneğin sayfanın üst,sağ,sol ve alt kısımları sabittir. Bunlara bazen logolar, bazen reklamları bazende içerik gezgini(navigasyon) koyarız. O halde bir web sitesinin sayfaları bir iskelet üzerine oturmaktadır. Her seferinde birtakım include etiketinin kullanılması gerektirir. Bunun yerine iskelet şablon oluşturup sonra bu iskeleti kullanarak, o anaki içerikleri iskeletin içerisine yerleştirmek daha kolay olacaktır.

  • Öncelikle İnclude yapısını oluşturalım. Footer.html kullaniyorum :

Yukarıdaka görüldüğü gibi, bir block-endblock yapısı kullandım. Bunun mantığını şöyle açıklayabiliriz:

Sabit bir şablon kullaniyoruz ama farklı bir şablon içerisine include ederken, bazı yerlerin değiştirmek istiyoruz. Bunun için en kolay ve verimli yol budur.

1-) Footer.html dosyasını, kullanacağımız şablona çağırmamız gerekiyor :

extends ifadesini, en başa koymanız gerekiyor lütfen dikkat edin!

{% extends “footer.html” %}

2-) Çağırdıktan sonra, siteadini belirleyelim :

Çıktıyı fark ediceksiniz, “Python.TC © 2016 Copyright Tüm Hakları Saklıdır.” yazacaktır.


NOT : Kısaca şöyle bir ayrım yapmamız gerekiyor :

  • Eğer, sabit bir şablon kullaniyorsak include yapısını kullanmalıyız.
  • Eğer, sabit bir şablon ama küçük değişiklerle kullanacaksak extends ve block-endblock yapısın kullanacağız.

Umarım faydalı olmuştur.

Kaynak https://docs.djangoproject.com/en/1.7/topics/templates/

Kaynağı kullanarak, türkçe kaynak oluşturdum daha detaylı bilgi için kaynağa bakınız.

Django İskelet Şablonlar

Giriş Yap

Hoşgeldin, sefa getirdin :)

Şifre Sıfırla

Şifreni bidaha unutma lütfen :)

Geri git :
Giriş Yap