python的WEB框架Bottle,它的默认模板好像不直接支持变量含有HTML标记,

比如一个变量,test='''<spanstyle="font-size:24px;color:#f546ff;">test</span>'''当嵌入HTML模板里时,就... 比如 一个变量,test='''<span style="font-size:24px;color:#f546ff;">test</span>'''
当嵌入HTML模板里时,就会变成:
<span style="font-size:24px;color:#f546ff;">sgfszhfsz,</span>
而不是直接输出,应该怎么操作才能直接输出呀?
又错了,左边的< 变成 & lt; 右边的变成 & gt; 了
应该是被转码了,要怎么才能不被转码呀
展开
 我来答
josonchen
2011-07-27 · TA获得超过223个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:163万
展开全部
我的测试运行正常,以下是代码和运行结果,供你参考。python 2.7

源码:
from bottle import template
from bottle import route, run

@route('/:name')
def index(name='World'):
htmltext=template('Hello {{name}}!', name='''<span style="font-size:24px;color:#f546ff;">test</span>''')
return '<b>Hello %s!</b>' % htmltext

run(host='localhost', port=8080)

运行结果:
Hello Hello <span style="font-size:24px;color:#f546ff;">test</span>!!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fisher335
2017-08-24
知道答主
回答量:9
采纳率:0%
帮助的人:1.1万
展开全部
虽然过去了很多年,但是我觉得还是回答一下,给后来遇到的人提个醒,
bottle为了防止XSS攻击,所以所有html都转义成字符处理了,要想用html,请使用{{!name}}
官网例子:
>>> template('Hello {{name}}!', name='<b>World</b>')
u'Hello <b>World</b>!'
>>> template('Hello {{!name}}!', name='<b>World</b>')
u'Hello <b>World</b>!'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csh2qq
2017-10-23
知道答主
回答量:62
采纳率:0%
帮助的人:18.9万
展开全部
HTML特殊字符转义自动防止XSS攻击。可以用感叹号启动表达式以禁用该表达式的转义:
>>> template('Hello {{name}}!', name='<b>World</b>')
u'Hello <b>World</b>!'
>>> template('Hello {{!name}}!', name='<b>World</b>')
u'Hello <b>World</b>!'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
道法自然RAM
2011-07-28 · TA获得超过2869个赞
知道大有可为答主
回答量:2954
采纳率:33%
帮助的人:1855万
展开全部
用django的飘过.......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式