Jinja2는 널리 사용되는 웹 프레임워크인 Flask에 내장된 템플릿 엔진으로, Django의 템플릿 엔진과 유사합니다. 여기서는 Python의 Tornado 프레임워크용 Jinja2 템플릿 엔진을 구성하는 방법을 살펴보겠습니다
tornado default 템플릿 엔진이 있지만 기능은 간단하고(사실 제가 쓸 수 있는 건 다 비슷해요) 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)이렇게요. , 토네이도에서 self.render를 self.render_html로 바꿀 수 있습니다.Jinja2 템플릿 엔진을 사용하는 Python의 Tornado 프레임워크 구성에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 팔로우하세요!