zoukankan      html  css  js  c++  java
  • tornado 和 djanjo 转义处理对比

    tornado

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

    所有的模板输出都已经通过 tornado.escape.xhtml_escape 自动转义(escape)

    在模板文件中加入 {% autoescape None %}、或者在简单表达语句 {{ … }} 写成 {% raw …%}

    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()
    

    1、利用raw

    {% raw title %}
    

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

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

    Django

    1、使用mark_safe函数标记后,django将不再对该函数的内容进行转义

    from django.utils.safestring import mark_safe 
    ret = mark_safe(a)  

    2、使用autoescape标签

    {% autoescape off %}
        {{ a }}
    {% endautoescape %}
    

    3、管道符|safe

    {{ a|safe }}
    
  • 相关阅读:
    Java学习62
    Java学习61
    Maven3种打包方式之一maven-assembly-plugin的使用
    sftp 上传下载 命令介绍
    JMock+Junit4结合完成TDD实例
    UML类图中类与类的四种关系图解
    接口之间的多继承
    Linux中在当前目录下查找某个文件
    .gitignore与exclude
    pro git
  • 原文地址:https://www.cnblogs.com/luxiaojun/p/5833179.html
Copyright © 2011-2022 走看看