【发布时间】:2015-08-30 10:44:48
【问题描述】:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import _env
import tornado.web
import mako.lookup
import mako.template
from os.path import join
TEMPLATE_PATH = [join(_env.PREFIX, 'templates')]
MAKO_LOOK_UP = mako.lookup.TemplateLookup(
directories=TEMPLATE_PATH,
input_encoding='utf-8',
output_encoding='utf-8',
filesystem_checks=False,
encoding_errors='replace',
module_directory=join(_env.PREFIX, '_templates'),
)
class BaseHandler(tornado.web.RequestHandler):
def initialize(self, lookup=MAKO_LOOK_UP):
'''Set template lookup object, Defalut is MAKO_LOOK_UP'''
self._lookup = lookup
def render_string(self, filename, **kwargs):
'''Override render_string to use mako template.
Like tornado render_string method, this method
also pass request handler environment to template engine.
'''
try:
template = self._lookup.get_template(filename)
env_kwargs = dict(
handler=self,
request=self.request,
current_user=self.current_user,
locale=self.locale,
_=self.locale.translate,
static_url=self.static_url,
xsrf_form_html=self.xsrf_form_html,
reverse_url=self.application.reverse_url,
)
env_kwargs.update(kwargs)
return template.render(**env_kwargs)
except:
# exception handler
pass
def render(self, filename, **kwargs):
self.finish(self.render_string(filename, **kwargs))
大家好。我是龙卷风和mako的新手。这段代码我已将龙卷风默认模板更改为 mako,我知道在龙卷风中我可以通过这种方式在 html 中使用 static_url:
<link rel="stylesheet" href="{{ static_url("css/reset.css") }}">
但是如何在 mako html 中使用它?
我尝试了一些不同的方法,但它不起作用。任何人都可以提供帮助,谢谢。
【问题讨论】:
标签: python static tornado mako