Template Jinja2 Dasar
Penjelasan
Jinja2 adalah template engine yang dipakai Flask untuk merender HTML dengan data dinamis dari Python. File template disimpan di folder templates/ pada root project, dan Flask otomatis mencarinya di situ. Ada dua sintaks utama: {{ ekspresi }} untuk menampilkan nilai variabel (mirip print), dan {% statement %} untuk logika seperti if, for, atau block. Jinja2 juga punya 'filter' untuk memodifikasi tampilan nilai, ditulis dengan pipe, misalnya {{ nama|upper }} untuk huruf besar atau {{ harga|round(2) }} untuk pembulatan.
Contoh Konsep
# app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/produk')
def produk():
daftar = ['Laptop', 'Mouse', 'Keyboard']
return render_template('produk.html', items=daftar, judul='Daftar Produk')
<!-- templates/produk.html -->
<h1>{{ judul }}</h1>
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
{% if items|length == 0 %}
<p>Belum ada produk.</p>
{% endif %}
</ul>
Praktikum
Lengkapi template agar menampilkan daftar nama_siswa dengan penomoran, dan pesan 'Kelas kosong' kalau list-nya kosong.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Jinja2 otomatis melakukan auto-escaping HTML pada {{ }} untuk mencegah XSS — jangan matikan ini kecuali kamu benar-benar tahu isinya aman, misalnya lewat filter |safe.