更好地改变瓶子里的html标签的方法

时间:2014-03-15 17:05:01

标签: javascript jquery html python-2.7 bottle

我正在运行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']+'&nbsp;</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('&lt','<').replace('&gt', '>'));

});$

tldr;如何在更换瓶子之前更改标签?是否有非js解决方案?

1 个答案:

答案 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>