Django'nun en güçlü özelliklerinden biri, kodu dinamik olarak yeniden kullanabilmesidir. Şablon devralma, üst ve alt şablonlar arasında kod paylaşımına izin verir. Çabaların tekrarını büyük ölçüde azaltır.
Django, HTML ile harmanlanmak üzere tasarlanmış kendi şablon diline sahiptir. Daha önce HTML koduyla çalıştıysanız, Django'nun şablonlarıyla çalışmayı kolay bulacaksınız. Smarty veya Jinja2 gibi diğer metin tabanlı şablon dilleri de benzer sözdizimine sahiptir.
Bir Django projesi oluşturarak şablon devralma hakkında daha fazla bilgi edinelim.
Django Şablonu nedir?
Django'da şablon, HTML, XML veya CSV gibi herhangi bir metin tabanlı format oluşturabilen bir metin dosyasıdır.
Django şablon etiketleri şablondaki değişkenleri ve değerleri kapsayan mantığı kontrol edin. Etiketler, program mantığını şablon sunumundan ayırmaya yardımcı olur. Ayrıca şablonlarınızı temiz ve düzenli tutmanıza yardımcı olurlar.
Django, şuna benzeyen birçok yerleşik etikete sahiptir: {% etiket %}. Etiketler birçok yönden faydalıdır. Çıktıda metin oluşturabilir, döngüler gerçekleştirebilir ve şablona bilgi yükleyebilirler.
Şablon mirasını göstermek için bu projede etiketleri kullanacaksınız.
Django Projesi Oluşturma
Başlamak, bir Django projesi oluştur. adlı bir uygulama oluşturun. şablonlar. Bunu yaptıktan sonra, uygulama için bir görüntüleme işlevi, bir URL yolu ve şablon devralmayı göstermek için şablonlar oluşturmaya hazırsınız.
Bir Görünüm İşlevi Oluşturun
İlk önce bir oluştur görüş şablonları işleyen işlev. Bu durumda, index.html şablon. içe aktar işlemek Django kısayollarından yöntem. Ardından, dizin şablonunu döndüren ve işleyen index adlı bir görüntüleme işlevi oluşturun.
itibaren django.kısayollar içe aktarmak işlemek
# Görünümlerinizi burada oluşturun.
kesindizin(rica etmek):
dönüş oluşturma (istek,'index.html')
Bir URL Yolu Oluşturun
Ardından, bir URL yolu Görünüm işlevinin şablonları görüntülemesi için. içe aktar yol django.urls işlevinden ve görüş işlevi görünümler.py dosya. Sonra içe aktar ayarlar Ve statik şablonlarda sahip olabileceğiniz tüm görüntüleri ve medyayı işlemek için.
itibaren django.urls içe aktarmak yol
itibaren. içe aktarmak Görüntüleme
itibaren django.conf içe aktarmak ayarlar
itibaren django.conf.urls.statik içe aktarmakstatik
urlpatterns=[
yol('',views.index, ad='dizin'),
]
eğerayarlar.DEBUG:
url kalıpları+=statik(ayarlar. MEDIA_URL, document_root=ayarlar. MEDYA_KÖK)
Şablonlar Oluşturun
Şimdi sahip olduğunuza göre görüş Ve URL yolu, şablonları oluşturun. Şablon devralmayı göstermek için bir base.html ana şablon olarak. bu base.html dosya, paylaşmak istediğiniz genel öğelere sahip olacaktır. index.html,alt şablon.
{% yükleme önyükleme5 %}
{% yük statik %}
<!DOCTYPE html>
<html dili="tr">
<KAFA>
<meta karakter kümesi="UTF-8">
<meta http eşdeğeri="X-UA Uyumlu" içerik="IE=kenar">
<meta adı="görüntü alanı" içerik="genişlik=cihaz genişliği, başlangıç ölçeği=1.0">
<!-- başlıklar-->
{% eğer başlık %}
<başlık> Miras Alınan Şablonlar {{title}}</title>
{% başka %}
<başlık> Devralınan Şablonlar </title>
{% endif %}
{% blok stilleri %}
{%bootstrap_css %}
<bağlantı rel="stil sayfası" href="{% statik 'css/stil.css' %}">
{% son blok %}
</head>
<vücut>
{% katmak 'gezinme çubuğu.html' %}
{% blok içeriği %} {% endblock %}
<!-- Önyükleme bağlantıları -->
<komut dosyası kaynağı="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" bütünlük="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" çapraz köken="anonim"></script>
</body>
</html>
İlk önce Bootstrap ve statik bağımlılıkları yükleyin. base.html şablon. Yapabilirsiniz Django projenizle Bootstrap çerçevesini kullanın HTML sayfalarına stil vermek için. Üstte yüklenen statik bağımlılık, statik klasörde bulunan varlıkları yükler.
Django şablonları, içeriğin görüntülenmesinden sorumlu mantık parçalarını iletmenize izin verir. Şablon etiketleri, " ile çevrili metinden oluşur{%" Ve "%}" karakterler. bu eğer / başka ifade, görünüm işlevindeki koşulları kontrol eder. Koşul doğruysa, içeriği ilk blokta işler; false ise, içeriği saniye içinde işleyecektir.
bu base.html dosya aynı zamanda içeriğini de oluşturacaktır. gezinme çubuğu.html şablon etiketlerini yerleştirdiğiniz yer. Bunun anlamı, ne zaman uzatırsanız base.html, gezinme çubuğu.html da miras kalır. Genişleyen herhangi bir şablon base.html olan herhangi bir öğeyi devralacak {% katmak %} etiket.
ile çevrili herhangi bir metin {{}} bir şablon değişkenidir. Şablon değişkenleri, görüntüleme işlevleri tarafından sağlanan dinamik verilerdir. Django ayrıca açık bir etiket kullanan blok etiketlerini de kullanır. {% blok içeriği %}ve bir kapanış etiketi gibi {% son blok %}.
Blok etiketleri, alt şablonların üst şablonların içeriğini geçersiz kılmasına izin verir. bu durumda, index.html blok etiketlerinin çevrelediği alandaki içeriğini değiştirebilir. Diğerine müdahale etmeyecek base.html bileşenler.
mantığını uygulayalım index.html
{% uzanır 'base.html' %}
{% blok içeriği %}
<div sınıfı="kapsayıcı metin merkezi" stil="Beyaz renk">
<h1>Ben Dizin Şablonuyum</h1>
<P>Bootstrap ve navbar'ı base.html'den devraldım</P>
</div>
{% son blok %}
İçinde index.html şablonu kullanın {% uzatmak %} bileşenlerini genişletmek için etiket base.html. Blok etiketlerinin içinde {% blok içeriği %}, tüm kodunuzu yazın.
İçinde index.html şablon, bir H1'iniz ve bir paragraf öğeniz var. Değişkenleri çağırmak için div'lerin içindeki şablon etiketlerini kullanabilirsiniz. görüş işlev.
Tarayıcıda Şablon Kalıtımını Test Etme
Artık sunucuyu çalıştırabilirsiniz. Bunu yaptıktan sonra, tarayıcıda olup olmadığını kontrol edin. index.html dosya öğelerini devraldı base.html. Bu, Bootstrap bağlantılarını içerir ve gezinme çubuğu.html şablon.
bu index.html dosya, temel şablondan navbar ve Bootstrap stillerini devralmalıdır. Öyleyse, şablon devralmayı doğru şekilde kullandınız. O olmasaydı, ihtiyaç duyduğunuz yere gezinti çubuğunu ve Bootstrap bağlantılarını eklemeniz gerekirdi.
Ayrıca, üzerinde yaptığınız herhangi bir değişiklik base.html uzandığı tüm şablonları yansıtacaktır. Bu ilke, hata işlemede önemlidir. Hata içeren şablonları kolayca tanımlayabilirsiniz.
Şablon devralma, Django'nun Kendinizi Tekrar Etme (DRY) ilkesini uyguladığı birçok yoldan biridir. Geliştirmenizi çok daha kolay ve basit hale getirecektir.
Neden Django Şablon Kalıtımını Kullanmalısınız?
Django'nun şablon kalıtımı, en karmaşık özelliklerinden biridir. Bunu anlamak biraz zaman alabilir, ancak bir kez anladığınızda, çok fazla geliştirme çabası tasarrufu sağlar.
Şablon devralma, üst ve alt şablonlar arasında kod paylaşmanıza olanak tanır. Bu, şablonlarınıza tekrarlayan kodlar yazmamanızı sağlar.
Büyük Django projelerinde şablon devralma önemlidir. Bu gibi durumlarda, tasarlanacak birçok uygulama ve birçok şablon vardır. Ana şablonlar, uygulamanın diğer bileşenleri üzerinde size çok sayıda kontrol sağlar.
Django şablon sistemini öğrenerek temiz ve güçlü kod yazmanın keyfini çıkarabilirsiniz.