Bölüm 04 : Şablonlar
Ceviz Viki sitesinden
Not : Bu kitap bölüm bölüm http://www.djangobook.com/en/2.0/ adresinden Türkçe'ye çevrilecektir.
- Bölüm 01 : Django ile tanışalım
- Bölüm 02 : Başlarken
- Bölüm 03 : Görünümler ve URLConfs
- Bölüm 04 : Şablonlar
- Bölüm 05 : Modeller
- Bölüm 06 : Django Admin Bölümü
- Bölüm 07 : Formlar
- Bölüm 08 : İleri Düzey Görünümler ve URLConfs
- Bölüm 09 : İleri Düzey Şablonlar
- Bölüm 10 : İleri Düzey Modeller
- Bölüm 11 : Genel Görünümler
- Bölüm 12 : Django'yu Yayınlamak
- Bölüm 13 : HTML Harici İçerik Üretimi
- Bölüm 14 : Oturumlar, Kullanıcılar ve Kayıt
- Bölüm 15 : Önbellek
- Bölüm 16 : django.contrib
- Bölüm 17 : Aracı Yazılım (Middleware)
- Bölüm 18 : Standart Veritabanı ve Uygulamalarla Entegrasyon
- Bölüm 19 : Uluslararasılaştırma (Internationalization)
- Bölüm 20 : Güvenlik
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
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.