2014-09-04 69 views
1

我正在使用GAE在Python中编写simlpe web应用程序。我的response.out.write给我TypeError。该错误信息是:在Google App Engine中获取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

你并不需要明确地传递selfwrite()方法。

替换:

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

有:

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