我正在努力让Jinja2与Google AppEngine合作。我的main.py代码有以下内容:
import os
import webapp2
import jinja2
jinja_environment = jinja2.Environment(autoescape=True,
loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))
class MainPage(webapp2.RequestHandler):
def get(self):
template_values = {
'name': 'SomeGuy',
'verb': 'extremely enjoy'
}
template = jinja_environment.get_template('index.html')
self.response.out.write(template.render(template_values))
webapp2.WSGIApplication([('/', MainPage)], debug=True)
这已经杀了我好几个小时我会感激一些帮助。
更新:
我稍微更改了代码以更新情况。日志告诉我:
ImportError: <module 'main' from '/base/data/home/apps/s~devpcg/1.359633215335673018/main.pyc'> has no attribute app
以上代码全部来自我的main.py文件夹。我在名为templates的文件夹中有一个文件index.html,该文件夹与main.py文件位于同一目录中。
答案 0 :(得分:3)
在将代码粘贴到stackoverflow时,我不确定这是否是复制粘贴错误,但您似乎确实收到了评论中指示的缩进错误...
这是正确的缩进:
class MainPage(webapp2.RequestHandler):
def get(self):
template_values = {
'name': 'SomeGuy',
'verb': 'extremely enjoy'
}
template = jinja_environment.get_template('index.html')
self.response.out.write(template.render(template_values))
编辑:
根据新的错误,我建议您提供一些有关您的应用程序结构的更多信息
我猜您正在向我们展示您的main.py
文件
如果确实如此,你需要在该文件中使用类似下面的代码(假设Python 2.7)
有关更详细的详细信息,请参阅文档:
https://developers.google.com/appengine/docs/python/python27/using27#Configure_WSGI_Script_Handlers
app = webapp2.WSGIApplication(routes=[
( r'/', MainPage ),
# ... other paths ...
], debug=True) # True for now until ready for prod...