2024-06-25 07:11:03 发布
网友
我有以下情况:
class em(DIV)
为此,我需要在余烬文件到{=em('XXX')}},包括跨越多行的实例。我想在这里使用regex,但我想避免重新发明轮子(以及必须处理奇怪的角落案例)
你能想出一个在python中解析这类模板的通用方法吗。这只是一个寻找开始和结束分隔符({{和}}),并放入=em('XXX'),处理新行,以及保持格式(即,如果有新行,则保留新行)。在
{{
}}
=em('XXX')
注意:这实际上不是余烬它可以应用于任何基于多行分隔符的模板系统。在
可能值得尝试一种方法余烬在单独的文件中填充,不要与web2py模板混合使用。幸运的是,余烬很容易就能做到。在
注意,在web2py的主干版本中(它将在未来几天作为web2py 2.0发布),您现在可以为模板指定自定义分隔符,这样您就可以更改web2py分隔符,使它们不再与余烬分隔符。例如,在模型文件中:
response.delimiters = ['{%', '%}']
然后在web2py模板中,您可以执行以下操作:
将产生:
<p>hello world</p> <p>{{ember template code}}</p> <p>{{ember template code generated by web2py}}</p>
注意,响应.分隔符在每个请求上设置,因此如果您不想更改所有页面上的web2py分隔符,而只更改那些包含成员代码的页面,则可以设置响应.分隔符有条件地(通过在需要它的特定操作中设置它,或者通过检查模型文件中请求的控制器和/或函数)。例如,在模型文件中:
if request.function in ['action1', 'action2', 'action3']: response.delimiters = ['{%', '%}']
或者在控制器中:
def action1(): response.delimiters = ['{%', '%}'] [etc.]
可能值得尝试一种方法余烬在单独的文件中填充,不要与web2py模板混合使用。幸运的是,余烬很容易就能做到。在
注意,在web2py的主干版本中(它将在未来几天作为web2py 2.0发布),您现在可以为模板指定自定义分隔符,这样您就可以更改web2py分隔符,使它们不再与余烬分隔符。例如,在模型文件中:
然后在web2py模板中,您可以执行以下操作:
^{pr2}$将产生:
注意,响应.分隔符在每个请求上设置,因此如果您不想更改所有页面上的web2py分隔符,而只更改那些包含成员代码的页面,则可以设置响应.分隔符有条件地(通过在需要它的特定操作中设置它,或者通过检查模型文件中请求的控制器和/或函数)。例如,在模型文件中:
或者在控制器中:
相关问题 更多 >
编程相关推荐