為Python的Tornado架構配置使用Jinja2模板引擎的方法,tornadojinja2

來源:互聯網
上載者:User

為Python的Tornado架構配置使用Jinja2模板引擎的方法,tornadojinja2

tornado 預設有一個模板引擎但是功能簡單(其實我能用到的都差不多)使用起來頗為麻煩, 而jinja2文法與django模板相似所以決定使用他.

下載jinja2

還是用pip 下載(用的真是爽)

pip install jinja2

這樣就可以使用了.

tornado與jinja2 整合

tornado和jinja2整合起來很簡單(其實是網上找的比較簡單), 不知道從那裡找到的反正找到了,不說了直接上代碼

#coding:utf-8import tornado.webfrom jinja2 import Environment, FileSystemLoader, TemplateNotFoundclass TemplateRendring(object):  """  A simple class to hold methods for rendering templates.  """  def render_template(self, template_name, **kwargs):    template_dirs = []    if self.settings.get('template_path', ''):      template_dirs.append(self.settings['template_path'])    env = Environment(loader=FileSystemLoader(template_dirs))    try:      template = env.get_template(template_name)    except TemplateNotFound:      raise TemplateNotFound(template_name)    content = template.render(kwargs)    return content # 就是重新寫 BaseHandler 由jinja2模板渲染class BaseHandler(tornado.web.RequestHandler, TemplateRendering):  """  Tornado RequestHandler subclass.  """  def initialize(self):    pass  def get_current_user(self):    user = self.get_secure_cookie('user')    return user if user else None  def render_html(self, template_name, **kwargs):    kwargs.update({      'settings': self.settings,      'STATIC_URL': self.settings.get('static_url_prefix', '/static/'),      'request': self.request,      'current_user': self.current_user,      'xsrf_token': self.xsrf_token,      'xsrf_form_html': self.xsrf_form_html,    })    content = self.render_template(template_name, **kwargs)    self.write(content)

這樣就可以在tornado中替換self.render為self.render_html了.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.