【发布时间】:2012-10-23 00:35:51
【问题描述】:
我最初使用 App Engine 网站上显示的示例在 App Engine 上实现了 Jinja2:https://developers.google.com/appengine/docs/python/gettingstartedpython27/templates 其中 jinja2 是直接导入的:
import jinja2
import os
jinja_environment = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)))
class MainPage(webapp2.RequestHandler):
def get(self):
greetings = 'somestring'
template_values = {
'greetings': greetings,
}
template = jinja_environment.get_template('index.html')
self.response.out.write(template.render(template_values))
但我目前正在使用 Simpleauth (https://github.com/crhym3/simpleauth),它遵循 Nick Johnson 在此处描述的实现:http://blog.notdot.net/2011/11/Migrating-to-Python-2-7-part-2-Webapp-and-templates 其中 jinja2 是从 webapp2_extras 导入的:
import os
import webapp2
from webapp2_extras import jinja2
class BaseHandler(webapp2.RequestHandler):
@webapp2.cached_property
def jinja2(self):
return jinja2.get_jinja2(app=self.app)
def render_template(self, filename, **template_args):
self.response.write(self.jinja2.render_template(filename, **template_args))
class IndexHandler(BaseHandler):
def get(self):
self.render_template('index.html', name=self.request.get('name'))
以下哪种方法是使用 jinja2 的首选方法?(它们似乎不能很好地结合在一起,并且更愿意标准化最佳选择。)
【问题讨论】:
标签: python google-app-engine jinja2