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.
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.
RelaxTemplates menyediakan ciri penting yang diharapkan dalam enjin templat moden:
Mari terokai setiap ciri ini dan cara menggunakannya!
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.
RelaxTemplates menggunakan sintaks mudah menggunakan pendakap kerinting dan teg untuk menentukan pembolehubah, syarat, gelung dan elemen templat lain:
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
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.
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 %}
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.
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.
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.
Tentukan Templat dan Konteks:
{% extend 'base' %} {% block title %}Custom Page Title{% endblock %} {% block content %} <p>This is custom content for the child template.</p> {% endblock %}
Render Templat:
{% include 'header' %} <p>Welcome to the page!</p> {% include 'footer' %}
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.
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!