需要帮助让jinja2工作

时间:2012-06-15 04:20:43

标签: python google-app-engine jinja2

我正在努力让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文件位于同一目录中。

1 个答案:

答案 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...