5

我正在为最终将通过 ASP.NET 提供的 HTML 模板的本地开发(在 Mac 上)制作 Flask 应用程序。

%% ... %%出于本地开发的目的,我想要一种用一些数据替换 .NET 样式标记的内容的方法,这意味着除了标准标记之外,Jinja2 还需要能够识别标记: {{ ... }}<% ... %>等。

我在网上找到的所有内容都与在现有标签中包含一些新功能有关(例如{{ my_custom_function | arg1 arg2 }}

但是,如何为标签完全定义一个新模式呢?有没有人成功做到这一点?是否需要对 Jinja2 核心进行修改?

4

1 回答 1

7

据我所知,您可以将一组用于block_start_stringand block_end_string,以及一组用于variable_start_stringand variable_end_string

来自 jinja2/environment.py

`block_start_string`
    The string marking the begin of a block.  Defaults to ``'{%'``.

`block_end_string`
    The string marking the end of a block.  Defaults to ``'%}'``.

`variable_start_string`
    The string marking the begin of a print statement.
    Defaults to ``'{{'``.

`variable_end_string`
    The string marking the end of a print statement.  Defaults to
    ``'}}'``.

您可以使用环境变量覆盖这些。不过,我认为没有办法识别多种类型。例如,你不能同时拥有{{并且<%两者都工作,但如果你有一点hackery,你当然可以。

于 2012-08-23T00:55:02.557 回答