当前位置 : 首页 » 文章分类 :  开发  »  Jinja 模板引擎

Jinja 模板引擎

Python Jinja2 模板引擎

https://palletsprojects.com/projects/jinja
https://jinja.palletsprojects.com/en/stable/

pallets / jinja
https://github.com/pallets/jinja

pip install Jinja2
https://pypi.org/project/Jinja2/

中文文档
https://docs.jinkan.org/docs/jinja2/


基础

什么是模板?
就是在静态 HTML 加入一些变量标签,然后引擎在渲染这个 HTML 时候会动态的把变量填入内容,生成一个最终的 HTML。

基础示例

Jinja2 模板关键语法
变量输出 {{ var }}
变量属性 {{ post.title }}{{ post['title']}}
字典元素 {{ your_dict['key'] }}
列表 {{ your_list[0] }}
注释 {# This is a comment #}
无转义输出 {{ variable|safe }}

多行代码块

{% 开始 %} 
HTML标签 
{% 结束 %}

条件语句

{% if condition %}
    ... 
{% endif %}

循环

{% for item in list %}
    ... 
{% endfor %}

示例:

{% if user.is_admin %}
  

{{ user.name }} (Admin)

{% else %}

{{ user.name }}

{% endif %}

修剪空白
{%-` 和 `-%}

管道过滤器
{{ text | truncate(50) }}

继承与导入
{% extends 'base.html' %}
{% block content %}


EJS 模板语法

Hexo 默认使用 EJS(Embedded JavaScrip) 作为模板引擎,语法类似 JavaScript,通过 <% %> 标签嵌入逻辑。

变量输出 <%= variable %>
无转义输出 <%- raw_html %>
注释 <%# This is a comment %>

条件语句

<% if (condition) { %> 
    ... 
<% } %>

循环

<% for (item of list) { %> 
    ... 
<% } %>

示例:

<% if (user.isAdmin) { %>
  <p><%= user.name %> (Admin)</p>
<% } else { %>
  <p><%= user.name %></p>
<% } %>

模板继承、引入
<%- include('partials/header.ejs') %>


下一篇 FastAPI

阅读
评论
394
阅读预计1分钟
创建日期 2025-04-24
修改日期 2025-04-24
类别

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论