簡體   English   中英

使用Jinja2自定義模板

[英]Custom templating using Jinja2

我正在嘗試使用jinja2如下。

假設,

以下是標簽:

tags: {"world":"WORLD", "c language": "Dennis Ritchie", "apple":"JOBS" }

輸入:

HELLO {{ world }}, C is written by **{{ c language }}**, **}}** while **{{** java is written by {{ java }}, hola.

輸出:

HELLO WORLD, C is written by Dennis Ritchie, **}}** while **{{** java is written by, hola.

簡而言之,我需要做以下事情。

  1. 分隔符-{{&}}
  2. 如果沒有預定義的標簽,則應將其置空。
  3. 如果只有單個定界符{{或}}(我的意思是不成對),則不應考慮標簽,否則應將其打印出來。
  4. 標簽應留有空格。

在4中,只有1&2 jinja2可以正常工作。

from jinja2 import Template
t = Template(input_string)
t.render(context)

但是對於第三和第四,它不起作用(或者我誤會了。)

我發現只有1個模板引擎稱為“ mustache”,它支持上述所有4種條件。 但是我不知道它在性能方面如何工作。

由於jinja2是成熟的模板引擎,我認為可以自定義默認行為。

有人知道解決辦法嗎?

提前thnx。

我的主要測試表明,Mustache(Pystache)比jinja2快。 如果可能,請給出專家意見。

http://mustache.github.io/

https://github.com/defunkt/pystache

最后我繼續留胡子 這真的是很棒的模板引擎。

http://mustache.github.io/

對於python的胡須構建

https://github.com/defunkt/pystache

我認為這是不可能的。 文檔對標識符非常清楚:

Jinja2使用常規的Python 2.x命名規則。 有效標識符必須匹配[a-zA-Z _] [a-zA-Z0-9 _] *。 實際上,當前不允許使用非ASCII字符。 為Python 3完全指定unicode標識符后,此限制可能會消失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM