pythonのjinja2を使ってかつ環境がgoogle app engineの場合、Template Inheritanceつまりtemplateの継承はできるのだろうか?
試した結果できるみたい。
まずは、python側のコードを以下のようにする。
import webapp2
import os
import jinja2
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=['jinja2.ext.autoescape'],
autoescape=True
)
#------------------------------------------------------------
#Top Index
#------------------------------------------------------------
class TopHandler(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/html; charset=UTF-8'
template_values = {}
template = JINJA_ENVIRONMENT.get_template('hoge.html')
self.response.write(template.render(template_values))で、html側を二つ用意する。{% extends "base.html" %}
{% block hoge %}<p>hello world</p>{% endblock %}で、基点となるhtmlを下のように用意する。{% block hoge %}{% endblock %}そうすると、block hogeの部分にコードが置換される。これめっちゃ便利ー。
0 コメント:
コメントを投稿