Sunucu Taraflı Şablonlama: Jinja2 ve Handlebars
HTML'yi sunucuda dinamik olarak görüntülemek için şablon motorlarını kullanın
Sunucu Taraflı Şablonlama: Jinja2 ve Handlebars, CoddyKit'te ücretsiz bir HTML Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, HTML Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. HTML Academy kursu toplamda 4 dersten oluşur.
Neden Sunucu Tarafı Şablonlama?
Sunucu tarafı şablonları, tarayıcıya göndermeden önce HTML'yi sunucuda oluşturur. İlk baytta arama motoru dostu işaretleme sağlar, JavaScript olmadan çalışır ve tamamen istemci taraflı oluşturmanın yol açtığı "JS yüklenene kadar boş sayfa" sorununu önler.
Jinja2 (Python)
Jinja2, fiilî Python şablonlama kitaplığıdır; Flask, Django (içerdiği veya jinja2 arka ucu aracılığıyla), Pelican ve mkdocs tarafından kullanılır. {% %} etiketlerinde mantık, {{ }} içinde ifadeler bulunur: değişkenler için <h1>{{ title }}</h1>, döngüler için {% for item in items %}.
<ul>
{% for item in items %}
<li>{{ item.name }} — ${{ item.price }}</li>
{% endfor %}
</ul>Handlebars (JavaScript)
Handlebars, işlemsel e-postalar (SendGrid, Mailgun) ve Express üzerinden SSR için popüler olan, en çok kullanılan Node.js şablonlama kitaplığıdır. İfadeler {{ }} içinde, bloklar {{# }} aracılığıyla yazılır: {{#each items}}<li>{{name}}</li>{{/each}}.
<ul>
{{#each items}}
<li>{{name}} — ${{price}}</li>
{{/each}}
</ul>Otomatik Özel Karakter Kaçışı
Her iki motor da varsayılan olarak değişken çıktısındaki özel karakterleri otomatik olarak kaçırır; {{ user.name }} ifadesi, name = "<script>" olduğunda "<script>" çıktısını üretir ve XSS'yi etkisiz hâle getirir. Her zaman otomatik kaçışa güvenin; açık ham çıktı süzgecini (Jinja: {{ x|safe }}, Handlebars: {{{x}}}) yalnızca güvenilir HTML için kullanın.
Şablon Kalıtımı
Jinja: {% extends "base.html" %} çocuk şablonda, {% block content %}{% endblock %} ise temel şablonda kullanılır. Handlebars: parçalı bloklarla birlikte {{#> layout }}{{/layout}}. Böylece temel bir düzen yapıyı bir kez tanımlar; sayfalar değişken bölgeleri doldurur.
Dahil Etmeler ve Parçalı Şablonlar
Jinja: {% include "header.html" %}. Handlebars: {{> header}}. Her ikisi de başka bir şablonu mevcut şablona doğrudan ekler. Parçalı şablonlar, büyük bileşen kütüphanelerinin yapı taşlarıdır; sayfalar ve düzenler oluşturmak için bir araya getirilirler.
Filtreler ve Yardımcılar
Jinja filtreleri: {{ price|currency }}. Handlebars yardımcıları: {{currency price}}. Her ikisi de değerler üzerinde biçimlendirme işlevlerini çağırmanızı sağlar. Projeye özgü dönüşümler için (tarih biçimlendirme, çoğullaştırma, bağlantı oluşturma gibi) kendi yardımcılarınızı tanımlayabilirsiniz.
Koşullu İfadeler
Jinja: {% if user.is_logged_in %}Welcome{% else %}Sign in{% endif %}. Handlebars: {{#if user.isLoggedIn}}Welcome{{else}}Sign in{{/if}}. İçeriği gizlemek veya göstermek için istemci tarafı JS kullanmak yerine şablonları verilere göre dallandırabilirsiniz.
Performans
Her iki motor da şablonları önce işlevlere dönüştürür, ardından her istekte bu işlevleri çağırır. Dönüştürme bir kez yapılır; oluşturma hızlıdır. Çok yüksek trafikli sitelerde aynı sayfaları yeniden oluşturmak yerine, oluşturulmuş çıktıyı uç önbelleğinde (Varnish, Cloudflare) önbelleğe alın.
Yerelleştirme
Şablonları yerelleştirme kütüphaneleriyle birleştirin: Python için Jinja2 + Babel, Node için Handlebars + i18next. Şablonlar çeviri anahtarlarını taşır ({{ t "welcome" }}); yerelleştirme katmanı bunları doğru dile çözümler. Böylece tek bir şablon birçok dilde oluşturulabilir.
Çatı Şablonları
Modern uygulama çatıları kendi şablon biçimlerini sunar: ERB (Rails), Twig (Symfony), Blade (Laravel), Razor (.NET), Slim/Haml (daha kısa biçimler). Kalıplar aynıdır; söz dizimi farklıdır. Arka uç dilinize ve ekosisteminize uyan motoru seçin.
Bileşenlere Geçiş
Şablonlar, geleneksel sunucu tarafında oluşturulan siteler için oldukça iyi çalışır. Daha etkileşimli uygulamalarda Next.js (React), Nuxt (Vue) ve SvelteKit gibi çatılar sınırı belirsizleştirir: Şablonları sunucuda oluştururlar, ancak etkileşim sağlamak için aynı bileşenleri istemcide yeniden etkinleştirirler.
Bilginizi Sınayın
Jinja2 ve Handlebars gibi şablon motorlarında otomatik kaçış neden varsayılan davranıştır?
Özet
Sunucu tarafı şablon motorları (Python için Jinja2, JS için Handlebars, diğer yığınlar için ERB/Twig/Blade), değişkenler, döngüler, koşullu ifadeler, parçalı şablonlar ve kalıtım kullanarak sunucuda HTML oluşturur. Otomatik kaçış varsayılan olarak XSS saldırılarına karşı koruma sağlar. Çok dilli siteler için yerelleştirme kütüphaneleriyle birlikte kullanın. Şablonlar temeldir; modern çatılar bunun üzerine istemci tarafında yeniden etkinleştirme katmanı ekler.
Sıkça Sorulan Sorular
“Sunucu Taraflı Şablonlama: Jinja2 ve Handlebars” dersi ücretsiz mi?
Evet — “Sunucu Taraflı Şablonlama: Jinja2 ve Handlebars” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve HTML Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. HTML Academy kursu toplamda 4 dersten oluşur.
“Sunucu Taraflı Şablonlama: Jinja2 ve Handlebars” dersinde ne öğreneceğim?
HTML'yi sunucuda dinamik olarak görüntülemek için şablon motorlarını kullanın HTML Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
HTML Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te HTML Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Sunucu Taraflı Şablonlama: Jinja2 ve Handlebars” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu HTML Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her HTML Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Bileşen Çıkarma ve Parçalı Şablonlar
- Sunucu Taraflı Şablonlama: Jinja2 ve Handlebars
- Tasarım Sistemlerinde HTML
- Belgelendirme ve Stil Kılavuzu Entegrasyonu