我正在运行v .12瓶。我有一个函数,可以创建我想要的输出(使用html标签)并将值作为字符串返回。我想将该字符串写入html页面,但它用'& lt','& gt'等替换我的标签。现在我的解决方案是在页面加载后运行javascript,找到这些模式并替换它们。还有更好的方法吗?
例如
functions.py:
def create_html(dict_in):
output ='<li class="myclass">'
output +='<div class="class_link">'
output +='<a href="/showDevice?id='+str(dict_in['_id'])+'">'+dict_in['name']+' </a>'
return output
template.tpl:
%import lib.functions
<div id="content">
<div class="device_wrapper">
%for thing in list_of_things:
{{lib.functions.create_html(thing)}}
%end #end for loop
</div>
</div>
custom.js
$('#change_tags').each(function(){
var $this = $(this);
var t = $this.text();
$this.html(t.replace('\"',''));
$this.html(t.replace('<','<').replace('>', '>'));
});$
tldr;如何在更换瓶子之前更改标签?是否有非js解决方案?
答案 0 :(得分:2)
根据bottle documentation,您可以通过在表达式前添加感叹号来关闭转义html:
%import lib.functions
<div id="content">
<div class="device_wrapper">
%for thing in list_of_things:
{{!lib.functions.create_html(thing)}}
%end #end for loop
</div>
</div>