2014-09-04 68 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))