python的WEB框架Bottle,它的默认模板好像不直接支持变量含有HTML标记,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的WEB框架Bottle,它的默认模板好像不直接支持变量含有HTML标记,相关的知识,希望对你有一定的参考价值。
比如 一个变量,test='''<span style="font-size:24px;color:#f546ff;">test</span>'''
当嵌入html模板里时,就会变成:
<span style="font-size:24px;color:#f546ff;">sgfszhfsz,</span>
而不是直接输出,应该怎么操作才能直接输出呀?
又错了,左边的< 变成 & lt; 右边的变成 & gt; 了
应该是被转码了,要怎么才能不被转码呀
源码:
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>!!本回答被提问者采纳 参考技术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>!' 参考技术C 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>!' 参考技术D 用django的飘过.......
以上是关于python的WEB框架Bottle,它的默认模板好像不直接支持变量含有HTML标记,的主要内容,如果未能解决你的问题,请参考以下文章