我一直在关注GAE / Jinja2教程,幸好它包含了我在GAE中一直在努力的功能,即如何使用main.py文件链接html页面,以便可以使用Jinja2进行编辑。 main.py的代码如下。
import webapp2
import logging
import jinja2
import os
jinja_environment = jinja2.Environment(
loader = jinja2.FileSystemLoader(os.path.dirname(__file__) + "/templates"))
class MainPage(webapp2.RequestHandler):
def get(self):
template_values = {
'welcome':'Welcome to my website!',
}
template = jinja_environment.get_template('homepage.html')
self.response.write(template.render(template_values))
class FeedbackPage(webapp2.RequestHandler):
def get(self):
feedbackvalues = {
}
template = jinja_environment.get_template('feedbackform.html')
class TopFinishers(webapp2.RequestHandler):
def get(self):
template = jinja_environment.get_template('Top10Finishers.html')
class Belts(webapp2.RequestHandler):
def get(self):
template = jinja_environment.get_template('WWETitlesBelt.html')
class TopWrestlers(webapp2.RequestHandler):
def get(self):
template = jinja_environment.get_template('Top10Wrestlers.html')
app = webapp2.WSGIApplication([('/',MainPage), ('/feedbackform.html',FeedbackPage),
('/Top10Finishers.html',TopFinishers),
('/WWETitlesBelt.html',Belts),
],
debug=True)
在本教程中,我遵循了添加更多请求处理程序然后在app对象中实例化它们的过程。但是,当我通过单击页面上的按钮加载页面时,它将我带到一个空白页面。 当我点击进入前10名Finishers'它将成功将我带到页面,因为URL是&local; localhost:etc / Top10Finishers.html。
但是,内容未显示,我是否需要在app.yaml文件中添加任何URL处理程序?
application: 205semestertwo
version: 1
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /css
static_dir: styling
- url: .*
script: main.app
libraries:
- name: webapp2
version: "2.5.2"
- name: jinja2
version: "2.6"
我的问题是'导致此错误的原因是什么?由于控制台日志似乎没有给我任何错误或见解
答案 0 :(得分:5)
您正在成功检索每个处理程序上的新模板,但忘记将其写在响应上,就像您对主处理程序所做的那样:
class TopFinishers(webapp2.RequestHandler):
def get(self):
values = {}
template = jinja_environment.get_template('Top10Finishers.html')
self.response.write(template.render(values))
这适用于所有处理程序。