2014-09-04 4 views
1

Я пишу веб-приложение simlpe в Python, используя GAE. Мой response.out.write дает мне TypeError. Сообщение об ошибке:Получение TypeError в Google App Engine

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

код питон:

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

Вам не нужно явно передать self методу write().

Заменить:

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

с:

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