Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Membina Projek RelaxTemplates: Enjin Templat Python Mesra Permulaan

Membina Projek RelaxTemplates: Enjin Templat Python Mesra Permulaan

Linda Hamilton
Linda Hamiltonasal
2024-11-01 17:03:02800semak imbas

Mencipta enjin templat membantu pembangun memahami asas sistem pemaparan web. RelaxTemplates ialah enjin templat berasaskan Python yang ringan yang memudahkan proses pemaparan templat. Direka bentuk untuk mendidik dan mesra pemula, RelaxTemplates menggambarkan konsep teras seperti penggantian berubah, gelung, bersyarat, warisan dan coretan boleh guna semula, menjadikannya pilihan ideal untuk pembangun yang ingin menyelami seni bina enjin templat.


Building the RelaxTemplates Project: A Beginner-Friendly Python Template Engine

Mengapa Pilih RelaxTemplates?

RelaxTemplates lahir daripada keperluan untuk mentafsirkan enjin templat, membolehkan pembangun meneroka ciri templat dan membinanya. Tidak seperti enjin sedia pengeluaran seperti Django atau Jinja2, RelaxTemplates menekankan kesederhanaan, memberikan pengguna lebih kawalan untuk bereksperimen dengan menambahkan penyesuaian atau melanjutkan fungsi.


Ciri Utama RelaxTemplates

RelaxTemplates menyediakan ciri penting yang diharapkan dalam enjin templat moden:

  1. Penggantian Pembolehubah: Suntikan kandungan dinamik ke dalam templat dengan mudah.
  2. Aliran Kawalan (Bersyarat): Render bahagian berdasarkan syarat.
  3. Gelung: Ulangi senarai dan koleksi dengan sintaks {% setiap %}.
  4. Fungsi Boleh Panggil: Guna fungsi Python dalam templat.
  5. Warisan Templat: Capai warisan reka letak dengan blok boleh dipanjangkan.
  6. Termasuk: Benamkan coretan templat boleh guna semula.

Mari terokai setiap ciri ini dan cara menggunakannya!


Bermula

Untuk mula menggunakan RelaxTemplates, cuma pasangkannya daripada PyPI:

pip install relaxtemplates

Kemudian, import pakej dan tentukan fail templat. Templat RelaxTemplates ialah fail HTML standard dengan sintaks khas untuk menggabungkan pembolehubah, blok dan logik templat lain.

Gambaran Keseluruhan Sintaks Asas

RelaxTemplates menggunakan sintaks mudah menggunakan pendakap kerinting dan teg untuk menentukan pembolehubah, syarat, gelung dan elemen templat lain:

  • Pembolehubah disertakan dalam {{ }} untuk penggantian dinamik.
  • Blok seperti syarat dan gelung disertakan dalam {% %} untuk struktur dan kawalan.

Sintaks dan Ciri Templat

Penggantian Pembolehubah

Pembolehubah dibalut dengan {{ }} untuk digantikan secara dinamik dengan nilai daripada konteks yang disediakan. Sebagai contoh, nama_pengguna berubah dalam templat berikut digantikan dengan nama pengguna.

<div>Hello, {{ user_name }}!</div>

Apabila dipaparkan dengan konteks seperti {'user_name': 'Alice'}, ini menghasilkan:

pip install relaxtemplates

Kawal Aliran dengan Bersyarat

Syarat dalam RelaxTemplates membolehkan anda memaparkan kandungan berdasarkan syarat tertentu. Pengendali yang disokong termasuk >, <, >=, <=, ==, dan !=. Berikut ialah contoh:

<div>Hello, {{ user_name }}!</div>

Jika umur_pengguna melebihi 18 tahun, templat mengeluarkan mesej pertama; jika tidak, ia memaparkan mesej alternatif.

gelung

Blok {% each %} berulang pada koleksi, menyediakan cara mudah untuk menyenaraikan item atau memaparkan bahagian berulang.

<div>Hello, Alice!</div>

Untuk fleksibiliti tambahan, gunakan .. dalam gelung untuk merujuk nilai dari skop luar. Ini amat berguna apabila memerlukan data konteks di luar item semasa:

{% if user_age > 18 %}
    <p>Welcome, adult user!</p>
{% else %}
    <p>Welcome, young user!</p>
{% end %}

Fungsi Boleh Panggil

RelaxTemplates membolehkan anda memanggil fungsi terus daripada templat anda. Fungsi boleh menerima kedua-dua hujah kedudukan dan kata kunci.

{% each items %}
    <p>{{ it }}</p>
{% end %}

Dalam contoh ini, format_tarikh dan log dipanggil dalam templat, membolehkan pemformatan tarikh atau pengelogan mengikut keperluan.

Pewarisan Templat

Salah satu ciri RelaxTemplates yang paling berkuasa ialah sokongannya untuk pewarisan templat. Ini membolehkan anda menentukan templat asas (cth., reka letak standard) dan memanjangkannya dalam templat anak.

Templat Asas (base.html):

{% each items %}
    <p>Outer name: {{ ..name }}</p>
    <p>Item: {{ it }}</p>
{% end %}

Templat Kanak-kanak (child.html):

<p>{% call format_date date_created %}</p>
<p>{% call log 'Event logged' level='debug' %}</p>

Persediaan ini membolehkan templat kanak-kanak mengatasi blok tertentu, seperti tajuk dan kandungan, tanpa mentakrifkan semula keseluruhan reka letak.

Termasuk

Gunakan {% include 'template_name' %} untuk memasukkan coretan templat boleh guna semula, seperti pengepala atau pengaki, dalam templat anda.

<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
    <div id="content">
        {% block content %}Default content.{% endblock %}
    </div>
</body>
</html>

Ciri ini membantu memodulasi templat dengan mengasingkan bahagian biasa ke dalam fail individu, mengurangkan pertindihan dan meningkatkan kebolehbacaan.


Memaparkan Templat: Contoh Aliran Kerja

  1. Tentukan Templat dan Konteks:

    • Mula-mula, buat fail templat dengan pembolehubah, gelung dan syarat yang dikehendaki. Berikut adalah contoh templat:
    {% extend 'base' %}
    {% block title %}Custom Page Title{% endblock %}
    {% block content %}
        <p>This is custom content for the child template.</p>
    {% endblock %}
    
  2. Render Templat:

    • Gunakan RelaxTemplates untuk menyusun dan memaparkan templat dengan data konteks.
    {% include 'header' %}
    <p>Welcome to the page!</p>
    {% include 'footer' %}
    

Gambaran Keseluruhan Prestasi

RelaxTemplates mungkin tidak sepadan dengan pengoptimuman enjin teguh seperti Django atau Jinja2 tetapi berfungsi dengan cekap untuk aplikasi dan percubaan yang lebih kecil. Berikut ialah perbandingan RelaxTemplates dengan enjin lain:

Template Runs Time Taken (ms)
Relaxtemplates 10,000 0.19
Django 10,000 0.39
Django (default loader) 10,000 0.22
Jinja2 10,000 3.28
Jinja2 (env) 10,000 0.10

Hasil ini menunjukkan bahawa walaupun RelaxTemplates tidak bertujuan untuk pengeluaran, ia merupakan pilihan yang cekap untuk ujian, pembelajaran dan aplikasi berskala kecil.


Menyumbang kepada RelaxTemplates

RelaxTemplates terbuka kepada sumbangan dan idea baharu sentiasa dialu-alukan! Sama ada anda berminat untuk menambah ciri, mengoptimumkan kod atau mempertingkatkan dokumentasi, sila teroka dan mencuba projek ini.

Selamat membuat templat dengan RelaxTemplates!

Atas ialah kandungan terperinci Membina Projek RelaxTemplates: Enjin Templat Python Mesra Permulaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn