Skip to main content
 首页 » 编程设计

python之GAE 应用程序 main.py 请求处理程序

2025年05月04日88think

我一直在关注 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) 

在本教程中,我遵循了添加更多请求处理程序的过程,然后在应用程序对象中实例化它们。但是,当我通过单击页面上的按钮加载页面时,它会将我带到一个空白页面。 当我单击转到“前 10 名完成者”时,它会成功将我带到该页面,因为 URL 是“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" 

我的问题是“是什么导致了这个错误”?由于控制台日志似乎没有给我任何错误或见解

请您参考如下方法:

您已成功在每个处理程序上检索到新模板,但忘记将其写在响应中,就像您对主处理程序所做的那样:

class TopFinishers(webapp2.RequestHandler): 
    def get(self): 
        values = {} 
        template = jinja_environment.get_template('Top10Finishers.html') 
        self.response.write(template.render(values)) 

这适用于您所有的处理程序。