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 }}
    
  • 相关阅读:
    hystrix(3) 熔断器
    hystrix(2) metrics
    hystrix(1) 概述
    ribbon源码(6) Server
    ribbon源码之客户端
    ribbon源码(4) 载均衡算法
    java虚拟机5 字节码
    spring mvc(5) HandlerAdapter
    spring mvc(4) HandlerMapping
    spring mvc(3) DispatcherServlet
  • 原文地址:https://www.cnblogs.com/luxiaojun/p/5833179.html
Copyright © 2011-2022 走看看