Jinja2 ile Şablonlar
Dinamik HTML oluşturun
Jinja2 ile Şablonlar, CoddyKit'te ücretsiz bir Python 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, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Şablonlar Neden Kullanılır?
Python dizelerinden HTML döndürmek kısa sürede karmaşık hale gelir. Şablonlar, HTML'nizi ayrı dosyalarda tutar ve oluşturma sırasında verilerle doldurur. Flask, Jinja2 motorunu kullanır.
from flask import Flask, render_template
app = Flask(__name__)
# render_template loads a file from the templates/ folder
print('Jinja2 powers Flask templates')templates Klasörü
Flask, şablonları uygulamanızın yanında bulunan templates/ adlı klasörde arar. Dosyalar genellikle .html ile biter.
# project/
# app.py
# templates/
# index.html
print('Templates live in templates/')render_template
render_template('index.html') bir şablonu yükler ve oluşturulan HTML'yi yanıt olarak döndürür.
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html')
print('home renders index.html')Veri Aktarma
Değişkenleri anahtar sözcük bağımsız değişkenleri olarak aktarın. Şablon daha sonra bunları görüntüleyebilir.
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html', name='Alice')
print('name=Alice is sent to the template')Değişkenleri Görüntüleme
Şablonda {{ name }} bir değişkeni yazdırır. Çift süslü parantezler, Jinja2'nin ifade söz dizimidir.
# index.html
# <h1>Hello, {{ name }}!</h1>
print('Double braces output a value')if İfadeleri
Jinja2 denetim ifadeleri {% %} kullanır. Bir if bloğu içeriği koşula bağlı olarak gösterir.
# {% if user %}
# <p>Welcome back!</p>
# {% else %}
# <p>Please log in.</p>
# {% endif %}
print('{% if %} branches the markup')for Döngüleri
Ürün listesi gibi yinelenen işaretlemeler oluşturmak için {% for item in items %} ile bir liste üzerinde döngü kurun.
# <ul>
# {% for item in items %}
# <li>{{ item }}</li>
# {% endfor %}
# </ul>
print('{% for %} repeats markup per item')Süzgeçler
Süzgeçler bir değeri dikey çizgiyle dönüştürür: {{ name|upper }} değeri büyük harfe çevirir. Yerleşik süzgeçler arasında length, default ve title bulunur.
# {{ name|upper }} -> ALICE
# {{ items|length }} -> count
# {{ bio|default('N/A') }}
print('Filters transform values with |')Şablon Kalıtımı
Temel şablon, {% block %} yer tutucularıyla sayfanın ana yapısını tanımlar. Alt şablonlar {% extends %} ile onu genişletir ve blokları doldurur.
# base.html
# <body>{% block content %}{% endblock %}</body>
#
# page.html
# {% extends 'base.html' %}
# {% block content %}<p>Hi</p>{% endblock %}
print('extends + block share a layout')Otomatik Kaçışlama
Jinja2, değişkenlerdeki HTML'yi otomatik olarak kaçışlar ve siteler arası betik çalıştırma saldırılarına karşı koruma sağlar. <script> gibi bir değer çalıştırılmaz, metin olarak gösterilir.
# If name = '<b>x</b>', {{ name }} renders the literal text
# Auto-escaping is on by default for safety
print('Auto-escaping prevents XSS')url_for ile Bağlantı Kurma
Şablonların içinde url_for çağrısını, genellikle statik dosyalar için, yine kullanabilirsiniz: {{ url_for('static', filename='style.css') }}.
# <link rel='stylesheet'
# href="{{ url_for('static', filename='style.css') }}">
print('url_for works inside templates too')Hızlı Kontrol
Jinja2 bilginizi sınayın.
Özet
Jinja2 ile şablon oluşturmayı öğrendiniz.
render_template(),templates/klasöründeki dosyaları oluşturur{{ }}değerleri görüntüler;{% %}if/forçalıştırır|uppergibi süzgeçler değerleri dönüştürürextends+blockdüzen kalıtımını sağlar- Otomatik kaçışlama XSS saldırılarına karşı koruma sağlar
Sıkça Sorulan Sorular
“Jinja2 ile Şablonlar” dersi ücretsiz mi?
Evet — “Jinja2 ile Şablonlar” 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 Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Jinja2 ile Şablonlar” dersinde ne öğreneceğim?
Dinamik HTML oluşturun Python 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.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python 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.
“Jinja2 ile Şablonlar” 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 Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python 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
- Yönlendirmeler ve Görünümler
- Jinja2 ile Şablonlar
- Formlar ve İstek Verileri
- REST Uç Noktası Oluşturma