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 }}
显示结果
默认把h1标签给转义,我们可以这么干使它不要转义
main.html
{% raw title %}
{{ title }}
raw 是不要转义
显示结果
或者在头部这么定义
main.html
{% autoescape None %}
{{ title }}
{{ escape(title) }}
{% autoescape None %}
是整个文件都生效,但可以使用escape转义某一处
显示结果