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; 了
应该是被转码了,要怎么才能不被转码呀 展开
当嵌入HTML模板里时,就会变成:
<span style="font-size:24px;color:#f546ff;">sgfszhfsz,</span>
而不是直接输出,应该怎么操作才能直接输出呀?
又错了,左边的< 变成 & lt; 右边的变成 & gt; 了
应该是被转码了,要怎么才能不被转码呀 展开
4个回答
展开全部
我的测试运行正常,以下是代码和运行结果,供你参考。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>!!
源码:
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>!!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虽然过去了很多年,但是我觉得还是回答一下,给后来遇到的人提个醒,
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>!'
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>!'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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>!'
>>> template('Hello {{name}}!', name='<b>World</b>')
u'Hello <b>World</b>!'
>>> template('Hello {{!name}}!', name='<b>World</b>')
u'Hello <b>World</b>!'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用django的飘过.......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |