建立範本引擎可以幫助開發人員了解 Web 渲染系統的基礎。 RelaxTemplates 是一個輕量級的、基於 Python 的模板引擎,可以簡化模板渲染的過程。 RelaxTemplates 旨在具有教育性和初學者友好性,闡釋了變數替換、循環、條件、繼承和可重用片段等核心概念,使其成為想要深入了解模板引擎架構的開發人員的理想選擇。
RelaxTemplates 的誕生是為了揭開模板引擎的神秘面紗,讓開發人員能夠探索模板功能並在其基礎上進行構建。與 Django 或 Jinja2 等生產就緒引擎不同,RelaxTemplates 強調簡單性,為用戶提供更多控制權來嘗試添加自訂或擴展功能。
RelaxTemplates 提供了現代模板引擎所期望的基本功能:
讓我們探索每個功能以及如何使用它們!
要開始使用 RelaxTemplates,只需從 PyPI 安裝它:
pip install relaxtemplates
然後,匯入套件並定義範本檔案。 RelaxTemplates 模板是標準 HTML 文件,具有特殊語法來合併變數、區塊和其他模板邏輯。
RelaxTemplates 採用簡單的語法,使用花括號和標籤來定義變數、條件、迴圈和其他範本元素:
變數被包裝在 {{ }} 中,以便動態替換為所提供上下文中的值。例如,以下模板中的變數 user_name 被替換為使用者名稱。
<div>Hello, {{ user_name }}!</div>
當使用像 {'user_name': 'Alice'} 這樣的上下文渲染時,輸出:
pip install relaxtemplates
RelaxTemplates 中的條件可讓您根據特定條件渲染內容。支援的運算子包括 >、=、
<div>Hello, {{ user_name }}!</div>
如果user_age大於18,則範本輸出第一則訊息;否則,它會顯示替代訊息。
{% every %} 區塊迭代集合,提供了一個簡單的方法來列出項目或顯示重複部分。
<div>Hello, Alice!</div>
為了增加彈性,請在迴圈內使用 .. 來引用外部範圍的值。當需要當前項目以外的上下文資料時,這特別有用:
{% if user_age > 18 %} <p>Welcome, adult user!</p> {% else %} <p>Welcome, young user!</p> {% end %}
RelaxTemplates 允許您直接從範本呼叫函數。函數可以接受位置參數和關鍵字參數。
{% each items %} <p>{{ it }}</p> {% end %}
在此範例中,在範本內呼叫 format_date 和 log,從而根據需要啟用日期格式化或日誌記錄。
RelaxTemplates 最強大的功能之一是它對模板繼承的支援。這允許您定義基本模板(例如標準佈局)並在子模板中擴展它。
基本模板 (base.html):
{% each items %} <p>Outer name: {{ ..name }}</p> <p>Item: {{ it }}</p> {% end %}
子模板 (child.html):
<p>{% call format_date date_created %}</p> <p>{% call log 'Event logged' level='debug' %}</p>
此設定可讓子範本覆蓋特定區塊,例如標題和內容,而無需重新定義整個版面配置。
使用 {% include 'template_name' %} 在範本中插入可重複使用的範本片段,例如頁首或頁尾。
<!DOCTYPE html> <html> <head> <title>{% block title %}Default Title{% endblock %}</title> </head> <body> <div id="content"> {% block content %}Default content.{% endblock %} </div> </body> </html>
此功能透過將公共部分分成單獨的檔案來幫助模組化模板,減少重複並增強可讀性。
定義範本和上下文:
{% extend 'base' %} {% block title %}Custom Page Title{% endblock %} {% block content %} <p>This is custom content for the child template.</p> {% endblock %}
渲染範本:
{% include 'header' %} <p>Welcome to the page!</p> {% include 'footer' %}
RelaxTemplates 可能無法匹配 Django 或 Jinja2 等強大引擎的最佳化,但對於較小的應用程式和實驗來說可以高效執行。以下是 RelaxTemplates 與其他引擎的比較:
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 |
這些結果表明,雖然 RelaxTemplates 不適用於生產,但它是測試、學習和小型應用程式的有效選擇。
RelaxTemplates 開放稿,歡迎新想法!無論您是有興趣添加功能、優化程式碼還是增強文檔,請隨意探索和試驗這個項目。
使用 RelaxTemplates 快樂製作模板!
以上是建立 RelaxTemplates 專案:適合初學者的 Python 模板引擎的詳細內容。更多資訊請關注PHP中文網其他相關文章!