tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法与django模板相似所以决定使用他.
下载jinja2
还是用pip 下载(用的真是爽)
pip install jinja2
这样就可以使用了.
tornado与jinja2 整合
tornado和jinja2整合起来很简单(其实是网上找的比较简单), 不知道从那里找到的反正找到了,不说了直接上代码
#coding:utf-8 import tornado.web from jinja2 import Environment, FileSystemLoader, TemplateNotFound class 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了.
本文向大家介绍Python的Flask框架标配模板引擎Jinja2的使用教程,包括了Python的Flask框架标配模板引擎Jinja2的使用教程的使用技巧和注意事项,需要的朋友参考一下 Jinja2需要Python2.4以上的版本。 安装 按照Jinja有多种方式,你可以根据需要选择不同的按照方式。 使用easy_install 或pip: 这两个工具可以自动从网站上下载Jinja,并安装到py
本文向大家介绍Python的Flask框架中的Jinja2模板引擎学习教程,包括了Python的Flask框架中的Jinja2模板引擎学习教程的使用技巧和注意事项,需要的朋友参考一下 Flask的模板功能是基于Jinja2模板引擎来实现的。模板文件存放在当前目前下的子目录templates(一定要使用这个名字)下。 main.py 代码如下: hello.html代码如下: 模板的表达式都是包含在
什么是模板引擎 在 Web 开发中,我们经常会使用到模板引擎。简单点来说,我们可以把模板看成是一个含有某些变量的字符串,它们的具体值需要在动态运行时(请求的上下文)才能知道。比如,有下面一个模板: <h1>Hello, {{ name }}!</h1> 其中,name 是一个变量名,我们用 {{ }} 包裹它表示它是一个变量。我们给 name 传不同的值,模板会返回不同的字符串。像这样,使用真实的
本文向大家介绍在Yii框架中使用PHP模板引擎Twig的例子,包括了在Yii框架中使用PHP模板引擎Twig的例子的使用技巧和注意事项,需要的朋友参考一下 Twig是一款快速、安全、灵活的PHP模板引擎,它内置了许多filter和tags,并且支持模板继承,能让你用最简洁的代码来描述你的模板。他的语法和Python下的模板引擎Jinjia以及Django的模板语法都非常像。 比如我们在PHP中需要
问题内容: 我有一个Flask网站,并且想使用AngularJS JavaScript框架。不幸的是,似乎分隔符重叠。 如果两个都依赖于双花括号(),如何将Angular与Jinja2配合使用?可能吗 问题答案: 您有一些选择。 1)更改Angular的定界符表示法: 无论选择什么作为开始和结束符号,都将充当新的分隔符。在这种情况下,您可以使用将变量表示为Angular 。 这种方法的优点是只需要
问题内容: 我一直在寻找如何在django 1.8中使用jinja2的方法,但是没有完整的源代码可以将django与jinja2一起使用。我想知道你们是否知道在Django中使用jinja2的过程。我查看了官方文档,并查看了以下问题:如何设置django 1.8以使用jinja2? 但是他们都没有清楚地解释如何以综合方式使用jinja2。我刚刚开始使用django,不了解文档中的所有术语。我真的很