jinja README

The project's README from github.com/pallets/jinja. As one markdown file: README.md.

Jinja

Jinja is a fast, expressive, extensible templating engine. Special placeholders in the template allow writing code similar to Python syntax. Then the template is passed data to render the final document.

It includes:

Jinja's philosophy is that while application logic belongs in Python if possible, it shouldn't make the template designer's job difficult by restricting functionality too much.

In A Nutshell

{% extends "base.html" %}
{% block title %}Members{% endblock %}
{% block content %}
  <ul>
  {% for user in users %}
    <li><a href="{{ user.url }}">{{ user.username }}</a></li>
  {% endfor %}
  </ul>
{% endblock %}

Donate

The Pallets organization develops and supports Jinja and other popular packages. In order to grow the community of contributors and users, and allow the maintainers to devote more time to the projects, please donate today.

Contributing

See our detailed contributing documentation for many ways to contribute, including reporting issues, requesting features, asking or answering questions, and making PRs.

jinja (pallets/jinja)

Searching Database…

11.8K ·GitHub
这是什么?Jinja 是一个面向 Python 的模板引擎,速度快、表达能力强、可扩展。你在模板里用类似 Python 的语法写占位符,再把数据传给它,就能渲染出最终的文档,比如 HTML。
这是独立的应用程序,还是我要在 Python 代码里导入的库?它是一个 Python 库(可以用 pip 安装,包名为 Jinja2),你在自己的应用里导入并使用它,它本身不是独立运行的程序。它由 Pallets 团队维护,也就是开发 Flask 的同一个团队。
我该如何在项目中开始使用 Jinja?安装 Jinja2 包,创建一个 Environment,加载模板,然后调用 render() 并传入数据,就能得到最终的文档。
翻译模板还需要额外的东西吗?核心的模板功能只需要 Jinja 本身,但国际化(I18N)支持需要依赖 Babel 库。
直接渲染不可信用户编写的模板安全吗?默认情况下并不安全。要安全地渲染不可信的模板,你必须主动使用 Jinja 的沙箱环境;同时,为了防止 XSS 攻击,还必须针对你所用的场景开启 HTML 自动转义。
通常谁会使用 Jinja?用 Python 开发 Web 应用、需要渲染 HTML 的开发者(尤其是 Flask 应用),以及任何需要借助类似 Python 的逻辑、根据模板生成文本输出(如配置文件、邮件、代码)的人。
模板能共享布局或可复用的代码片段吗?可以。Jinja 支持模板继承和包含,也可以在模板中定义并导入宏。
Jinja 支持异步 Python 代码吗?支持。它提供 AsyncIO 支持,可用于生成模板和调用异步函数。
与直接在 Python 里格式化字符串相比,Jinja 有多快?模板会即时编译为优化过的 Python 代码并缓存,也可以提前编译。这也是 Jinja 被称为速度非常快的引擎的原因。
模板出错时会怎样?Jinja 会把异常准确指向模板文件本身的对应行,因此与常见的编译输出相比,排查模板错误更容易。
What are similar projects?flask, starlette, click, loguru, moejs, celery, uvloop, reactionview
Creator
pallets
Size
6.8 MB
Stars
11.8K
Age
16y
Commits · 90 Days