代码之家  ›  专栏  ›  技术社区  ›  khateeb

在Google应用程序引擎中获取TypeError

  •  1
  • khateeb  · 技术社区  · 11 年前

    我正在使用GAE用Python编写一个simlpe web应用程序。我的 response.out.write 正在给我 TypeError 。错误消息为:

    self.response.out.write(*a, **kw)
    TypeError: write() takes exactly 2 arguments (3 given)
    

    python代码为:

    import os
    
    import jinja2
    import webapp2
    
    template_dir = os.path.join(os.path.dirname(__file__), 'templates')
    jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir))
    
    class Handler(webapp2.RequestHandler):
    
        def write(self, *a, **kw):
            self.response.out.write(*a, **kw)
    
        def render_str(self, template, **kw):
            t = jinja_env.get_template(template)
            return t.render(kw)
    
        def render(self, template, **kw):
            self.write(self, self.render_str(template, **kw))
    
    class MainHandler(Handler):
    
        def get(self):
          self.render("shopping_list.html", name="steve")
    
    
    app = webapp2.WSGIApplication([('/', MainHandler),],
                                 debug=True)
    
    1 回复  |  直到 11 年前
        1
  •  1
  •   alecxe    11 年前

    您不需要显式传递 self write() 方法

    替换:

    self.write(self, self.render_str(template, **kw))
    

    具有:

    self.write(self.render_str(template, **kw))