python的tornado禁止模板过滤空白

tornado的模板默认时候过滤掉空白的,仅在模板中存在<pre>字符串的时候不过滤,但是如果你的pre标签带有样式或者其他属性了,抱歉了,一样会过滤,有个简单的方法就是重写一下模板引擎中的过滤条件,可以使用下面的代码覆盖掉默认的模板引擎的判断:

import tornado.template
from tornado import escape


# 禁止模板过滤空白
class _Text(tornado.template._Text):
    def generate(self, writer):
        value = self.value

        # Compress whitespace if requested, with a crude heuristic to avoid
        # altering preformatted whitespace.
        # 禁止过滤空白
        # if "<pre>" not in value:
        #     value = filter_whitespace(self.whitespace, value)

        if value:
            writer.write_line('_tt_append(%r)' % escape.utf8(value), self.line)

tornado.template._Text = _Text

只需要把代码中注释的下面两行的判断去掉,就可以让模板按原样输出了.

由于tornado的模板引擎没有提供相关的参数控制,这个方法是最pythonic的了

转载于:https://my.oschina.net/zhupengdaniu/blog/1618099

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值