转自:http://www.qttc.net/201305320.html
tornado默认是转义所有字符,比较安全,但有时候我们的确需要把字符当做html来解析处理,因此我们需要做些处理。
示例:
main.py 代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get( self ): self .render( 'main.html' ,title = '<h1>Title</h1>' ) application = tornado.web.Application([ (r "/" , MainHandler), ]) if __name__ = = "__main__" : application.listen( 8888 ) tornado.ioloop.IOLoop.instance().start() |
main.html 代码:
1
|
{{ title }} |
执行结果:
默认把h1标签给转义,我们可以这么干使它不要转义
main.html 代码:
1
2
|
{% raw title %} {{ title }} |
raw 是不要转义
执行:
或者在头部这么定义
main.html
1
2
3
|
{% autoescape None %} {{ title }} {{ escape(title) }} |
{% autoescape None %} 是整个文件都生效,但可以使用escape转义某一处
执行: