python中的自定义模板

2024-05-19 10:54:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在python中实现自定义模板格式,实现两件事

  1. 类Django分隔符

    {{placeholder}}

例如

from string import Template

class MyTemplate(Template):
     delimiter="{{..}}" #it is only for clarification purpose, though it is invalid

^{pr2}$
  1. 如果存在键错误或值错误,请跳过该标识符。在

    类MyTemplate(模板): delimiter=“{{..}}”#它仅用于澄清目的

    data=“你好{world}},这是第一个节目{{program}”

    mt=MyTemplate(数据)

    在替代品(world=“world”)

那么o/p应该是

 HELLO WORLD, this is 1st program

据我所知,我们可以使用像jinja2这样的模板引擎,但这是我最后的选择。我更喜欢使用python本地库。在

不过,如果您想推荐任何模板引擎(如果可能的话,可以用示例),那么它也很好。在

提前谢谢。在


Tags: django引擎模板worldis格式错误it
2条回答

如果您只想进行简单的字符串格式化,python包括str.format()方法和Template Strings。在

直接从文档

>>> from string import Template
>>> s = Template('$who likes $what')
>>> s.substitute(who='tim', what='kung pao')
'tim likes kung pao'
>>> d = dict(who='tim')
>>> Template('Give $who $100').substitute(d)
Traceback (most recent call last):
...
ValueError: Invalid placeholder in string: line 1, col 11
>>> Template('$who likes $what').substitute(d)
Traceback (most recent call last):
...
KeyError: 'what'
>>> Template('$who likes $what').safe_substitute(d)
'tim likes $what'

如果您需要在模板中引入任何类型的逻辑,那么我可以大胆地说,您将无法正确地编写自己的代码,并且您将希望使用库。Jinja2是一个很好的通用模板库。如果您曾经使用过Django的模板系统,那么使用Jinja2将非常容易,因为Jinja2是基于Django的。在

我在Jinja2中使用的一些代码

^{pr2}$

在我的_模板.html

^{3}$

Django模板和Jinja2模板之间的一个区别是Jinja2的理念不是让设计者更容易使用;因此,在模板中允许函数调用。在

相关问题 更多 >

    热门问题