Bölüm 04 : Şablonlar

Ceviz Viki sitesinden

Git ve: kullan, ara

Not : Bu kitap bölüm bölüm http://www.djangobook.com/en/2.0/ adresinden Türkçe'ye çevrilecektir.


Konu başlıkları

Bölüm 04 : Şablonlar

Bir önceki bölümde, verdiğimiz örnekte (görünümler) yazıların tuhaf bir şekilde döndürüldüğünün farkına varmışsınızdır. Yani, HTML bizim python kodları içinde çok sıkı bir şekilde kodlanmıştı, bunun gibi;

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

Bu teknik, görünümlerin nasıl çalıştığını göstermeye uygun olsa bile, sizin görünümlerinizde direk sıkı kodlama yapmak iyi bir fikir değildir. Bunun nedeni;

    • Sayfanın tasarımındaki herhangi bir değişiklik python kodlarında da bir değişikliği gerektirir. Bir sitenin tasarımı o sitenin temelinde olması gereken Python kodundan daha fazla değiştirmeye neden olur, yani sitenin tasarımını değiştirmek için Python kodunda değişikliğe ihtiyaç duyulmuyor ise bu mantıklı olanıdır.
    • Python kodu yazmak ve HTML tasarlamak iki farklı düzendir, ve çok profesyonel web geliştirme ortamları insanlar (hatta bölümler) arasında bu sorumlulukları böler. Tasarımcılar ve HTML/CSS codlayılar işlerinde başarılı olmaları için Python kodunda düzenleme yapılmasına ihtiyaç bırakmamalıdırlar.
    • Hem HTML hem de python kodunu içeren tek bir dosyanın düzenlenmesini bitirmek için diğerlerini bekleyen bir kişi yerine, programcılar Ptyhon kodları üzerinde ve tasarımcılar da şablonların üzerinde aynı zamanda çalıştırabiliyorsa bu iş en verimli olanıdır.

Bunlardan dolayı, Python kodlarından sayfa taslağını ayırmak daha temiz ve bakım yapılabilir hale getirecektir. Bu bölümde tartışacağımız Django'nun şablon sistemi ile bunu yapabiliriz.

Şablon Sisteminin Temelleri

Bir Django şablonu verilerinden bir döküman sunumunu bölmek için planlanmış bir yazı dizisidir. Bir şablon dökümanın gösterilmesi gerektiği gibi düzenlenmiş birçok basit mantık (şablon etiketleri) ve yer tutucuları tanımlar. Genellikle, şablonlar HTML oluşturmak için kullanılırlar, fakat Django şablonları herhangi metin tabanlı bir formatta eşit bir biçimde oluşturabilir.

Gelin basit bir şablon örneğiyle başlayalım. Bu Django şablonu bir şirkete verdiği sipariş için bir kişiye teşekkür eden bir HTML sayfasıdır. Bunu bir mektup formu olarak düşünün:

<html>
<head><title>Ordering notice</title></head>

<body>

<h1>Ordering notice</h1>

<p>Dear {{ person_name }},</p>

<p>Thanks for placing an order from {{ company }}. It's scheduled to
ship on {{ ship_date|date:"F j, Y" }}.</p>

<p>Here are the items you've ordered:</p>

<ul>
{% for item in item_list %}
    <li>{{ item }}</li>
{% endfor %}
</ul>

{% if ordered_warranty %}
    <p>Your warranty information will be included in the packaging.</p>
{% else %}
    <p>You didn't order a warranty, so you're on your own when
    the products inevitably stop working.</p>
{% endif %}

<p>Sincerely,<br />{{ company }}</p>

</body>
</html>

Şablon Sistemini Kullanma

Şablon Nesneler Oluşturma


Ceviz Wiki Django Kitabı'nın Türkçe çevirisidir.

The Django Book Copyright 2006, 2007, 2008, 2009 Adrian Holovaty and Jacob Kaplan-Moss.

Django Kitabı Türkçe Çevirisi Copyright 2011 Burak Kılınç.

Bu sitede yayımlanan tüm yazılar ve Django Kitabı GNU GFDL lisansı altındadır.