2

Googleアプリエンジンで実行されているpythonprogがあります。プログラムから次のエラー メッセージが表示されます: (Traceback)

File "/Users/patriknygren82/patriks-hello-udacity/Unit3/blog/main.py", line 36, in get
  self.write("Hello test!")
File "/Users/patriknygren82/patriks-hello-udacity/Unit3/blog/main.py", line 25, in write
self.response.out.write(*a, **kw)
NameError: global name 'kw' is not defined

単純な「hello world」プログラムは次のようになります。

import webapp2
import jinja2
import os

jinja_environment = jinja2.Environment(
                       loader=jinja2.FileSystemLoader(
                           os.path.dirname(__file__) + "/templates"), 
                           autoescape=True)

class BaseHandler(webapp2.RequestHandler):
    def write(self, *a, **kv):
        self.response.out.write(*a, **kw)

    def render_str(self, template, **params):
        t=jinja_environment.get_template(template)
        return t.render(params)

    def render(self, template, **kw):
        self.write(self.render_str(template, **kw))

class MainHandler(BaseHandler):
    def get(self):
        self.write("Hello test!")

app = webapp2.WSGIApplication([('/', MainHandler)], debug=True)

誰か助けてください!ありがとう

4

1 に答える 1

6

kvではなく、その上の行でそれを呼び出しましたkw。あなたはおそらく次のことを意味していました:

def write(self, *a, **kw):
    self.response.out.write(*a, **kw)
于 2012-12-12T03:20:48.753 に答える