0Pricing
HTML Academy · Pelajaran

Templating Sisi Server Jinja2 Handlebars

Gunakan mesin template untuk merender HTML secara dinamis di server.

Templating Sisi Server Jinja2 Handlebars adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.

Mengapa Templating Sisi Server?

Templat sisi server membuat HTML di server sebelum mengirimkannya ke peramban. Templat ini menghasilkan markup yang ramah SEO sejak byte pertama, berfungsi tanpa JavaScript, dan menghindari masalah "halaman kosong sampai JS selesai dimuat" pada rendering murni di sisi klien.

Jinja2 (Python)

Jinja2 adalah pustaka templating Python de facto — digunakan oleh Flask, Django (melalui backend included atau jinja2), Pelican, dan mkdocs. Logika berada dalam tag {% %}, sedangkan ekspresi berada dalam {{ }}: <h1>{{ title }}</h1> untuk variabel dan {% for item in items %} untuk perulangan.

<ul>
  {% for item in items %}
  <li>{{ item.name }} — ${{ item.price }}</li>
  {% endfor %}
</ul>

Handlebars (JavaScript)

Handlebars adalah pustaka templating Node.js yang paling banyak digunakan, populer untuk email transaksional (SendGrid, Mailgun) dan SSR melalui Express. Ekspresi berada dalam {{ }}, sedangkan blok menggunakan {{# }}: {{#each items}}<li>{{name}}</li>{{/each}}.

<ul>
  {{#each items}}
  <li>{{name}} — ${{price}}</li>
  {{/each}}
</ul>

Pelolosan Otomatis

Kedua mesin secara bawaan melakukan pelolosan otomatis pada keluaran variabel — {{ user.name }} dengan name = "<script>" menghasilkan "&lt;script&gt;", sehingga menetralkan XSS. Selalu andalkan pelolosan otomatis; gunakan filter mentah eksplisit (Jinja: {{ x|safe }}, Handlebars: {{{x}}}) hanya untuk HTML tepercaya.

Pewarisan Templat

Jinja: {% extends "base.html" %} pada templat turunan, serta {% block content %}{% endblock %} pada templat dasar. Handlebars: {{#> layout }}{{/layout}} dengan blok parsial. Ini memungkinkan tata letak dasar mendefinisikan struktur satu kali; halaman mengisi bagian-bagian yang dapat berubah.

Penyertaan dan Parsial

Jinja: {% include "header.html" %}. Handlebars: {{> header}}. Keduanya menyisipkan templat lain ke dalam templat saat ini. Parsial adalah blok penyusun pustaka komponen besar—digabungkan ke dalam halaman dan tata letak.

Filter dan Fungsi Pembantu

Filter Jinja: {{ price|currency }}. Fungsi pembantu Handlebars: {{currency price}}. Keduanya memungkinkan Anda memanggil fungsi pemformatan pada nilai. Tentukan fungsi Anda sendiri untuk transformasi khusus proyek, seperti pemformatan tanggal, pembentukan kata jamak, dan pembuatan tautan.

Kondisional

Jinja: {% if user.is_logged_in %}Welcome{% else %}Sign in{% endif %}. Handlebars: {{#if user.isLoggedIn}}Welcome{{else}}Sign in{{/if}}. Pisahkan templat berdasarkan data tanpa perlu menggunakan JS sisi klien untuk menyembunyikan atau menampilkan konten.

Performa

Kedua mesin melakukan prakom­pilasi templat menjadi fungsi, lalu memanggil fungsi tersebut untuk setiap permintaan. Kompilasi dilakukan satu kali; perenderan berlangsung cepat. Untuk situs dengan lalu lintas sangat tinggi, simpan keluaran yang telah dirender di jaringan tepi (Varnish, Cloudflare), bukan merender ulang halaman yang identik.

Pelokalan

Gabungkan templat dengan pustaka i18n: Jinja2 + Babel untuk Python, Handlebars + i18next untuk Node. Templat membawa kunci terjemahan ({{ t "welcome" }}); lapisan i18n menentukan bahasa yang tepat. Dengan demikian, satu templat dapat ditampilkan dalam banyak bahasa.

Templat Kerangka Kerja

Kerangka kerja modern membawa format templatnya sendiri: ERB (Rails), Twig (Symfony), Blade (Laravel), Razor (.NET), Slim/Haml (lebih ringkas). Polanya sama; sintaksnya berbeda. Pilih mesin yang sesuai dengan bahasa backend dan ekosistem Anda.

Beralih Menuju Komponen

Templat sangat cocok untuk situs tradisional yang dirender di server. Untuk aplikasi yang lebih interaktif, kerangka kerja seperti Next.js (React), Nuxt (Vue), dan SvelteKit mengaburkan batas—kerangka kerja tersebut merender templat di server, tetapi komponen yang sama dihidrasi di klien untuk menyediakan interaktivitas.

Uji Pemahaman

Mengapa pelolosan otomatis menjadi perilaku bawaan pada mesin templat seperti Jinja2 dan Handlebars?

Ringkasan

Mesin templat sisi server (Jinja2 untuk Python, Handlebars untuk JS, ERB/Twig/Blade untuk tumpukan teknologi lain) menghasilkan HTML di server dengan variabel, perulangan, kondisional, parsial, dan pewarisan. Pelolosan otomatis melindungi dari XSS secara bawaan. Padukan dengan pustaka i18n untuk situs multibahasa. Templat adalah fondasinya; kerangka kerja modern menambahkan hidrasi di atasnya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Templating Sisi Server Jinja2 Handlebars” gratis?

Ya — teks lengkap “Templating Sisi Server Jinja2 Handlebars” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Templating Sisi Server Jinja2 Handlebars”?

Gunakan mesin template untuk merender HTML secara dinamis di server. Kamu berlatih HTML Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai HTML Academy?

Tidak diperlukan pengalaman sebelumnya. HTML Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Templating Sisi Server Jinja2 Handlebars” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran HTML Academy ini?

Ya. Setiap pelajaran HTML Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Ekstraksi Komponen dan Partial
  2. Templating Sisi Server Jinja2 Handlebars
  3. HTML dalam Sistem Desain
  4. Integrasi Dokumentasi dan Panduan Gaya
← Kembali ke HTML Academy