Hot For Coding

Tornado模板转义处理

Tornado默认是转义所有字符,比较安全,但有时候我们的确需要把字符当做html来解析处理,因此我们需要做些处理。

main.py

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

{{ title }}

显示结果

full

默认把h1标签给转义,我们可以这么干使它不要转义

main.html

{% raw title %}
{{ title }}

raw 是不要转义

显示结果

full

或者在头部这么定义

main.html

{% autoescape None %}
{{ title }}
{{ escape(title) }}

{% autoescape None %}是整个文件都生效,但可以使用escape转义某一处

显示结果

full

分享

TITLE: Tornado模板转义处理

LINK: https://www.qttc.net/320-tornado-escape.html

NOTE: 原创内容,转载请注明出自琼台博客