On 03-29 23:16, Kevin Jiang wrote:
各位前辈大家好,问一个tornado模板的问题。
有两个模板:
base.html
home.html
#base.html
{% block content %}{% end %}
#home.html
{% block content %}
<div>
<div>something here</div>
</div>
{% end %}
最后的结果变成了
<div>
<div>somethine here</div>
</div>
第二个div标签前面的4个空格没有了,大家有碰到过这个情况吗,要如何解决
作为 HTML 来说, 有没有那个空格都没有关系的吧.
首先, 这个东西是由 Template 的实例控制的, 初始化时有一个叫做 compress_whitespace 的参数, 相关源码:
def __init__(self, template_string, name="<string>", loader=None,
compress_whitespace=None, autoescape=_UNSET):
self.name = name
if compress_whitespace is None:
compress_whitespace = name.endswith(".html") or \
name.endswith(".js")
可以看到, 默认情况下(不传 name ), 它是不会压缩空格的.
我猜你是在使用 RequestHandler 的 render() 方法吧. 这个方法会使用 Loader 的实例去加载模板.它会传入你的模板文件名作为 name 参数的值, 所以, 最直接的方法就是, 改名你的模板文件 , 不使用 .html 结尾就可以了. 可以使用 .htm .
如果你不想改模板文件名, 那么根据 tornado 现有的机制, 你可以在 Application 的 settings 部分指定一个 Loader 实例, 看一下源码, 继承 Loader 类重写一个方法即可:
from tornado.template import Loader, Template
class MyLoader(Loader):
def _create_template(self, name):
path = os.path.join(self.root, name)
f = open(path, "rb")
template = Template(f.read(), name=name, loader=self,
compress_whitespace=False) // <--- 直接传入这个参数
f.close()
return template
把自己的 MyLoader 用在 settings 中:
class Application(tornado.web.Application):
def __init__(self):
settings = dict(
xsrf_cookies=False,
static_path = join(os.path.dirname(__file__), "static"),
template_path = join(os.path.dirname(__file__), "template"),
ui_modules = ui,
debug=config.DEBUG,
)
settings['template_loader'] = MyLoader(settings['template_path'])
tornado.web.Application.__init__(self, Handlers, **settings)
--
进出自由才是游戏者的生存之道。
--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com。
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
On 03-30 00:13, AleiPhoenix (A.K.A Areverie) wrote:
顺带补一个 https://github.com/facebook/tornado/issues/178 那issue一直开着233
呵呵, 它刚正式放 3.0 出来了.
--
进出自由才是游戏者的生存之道。
--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com。
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。