2016-04-11 11 views
0

に定義されていない私は、リンクの下 https://cloud.google.com/appengine/docs/python/NameError:グローバル名「Q」が

でのGoogleのApp EngineでのHello Worldプログラム可能な実行されましたが、私はmain.pyファイルのコード(試みるを変更した後out new handler)私は以下のエラーが発生しています。

Traceback (most recent call last): 
    File "/home/natesan/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1535, in __call__ 
    rv = self.handle_exception(request, response, e) 
    File "/home/natesan/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1529, in __call__ 
    rv = self.router.dispatch(request, response) 
    File "/home/natesan/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher 
    return route.handler_adapter(request, response) 
    File "/home/natesan/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1102, in __call__ 
    return handler.dispatch() 
    File "/home/natesan/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 572, in dispatch 
    return self.handle_exception(e, self.app.debug) 
    File "/home/natesan/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 570, in dispatch 
    return method(*args, **kwargs) 
    File "/home/natesan/webapps/udacity1/main.py", line 29, in get 
    self.request.get(q) 
NameError: global name 'q' is not defined 

main.pyファイルは次のとおりです。

import webapp2 

form=""" 
<form action="/Testform"> 
    <input name="q" > 
    <input type="submit"> 
</form> 
""" 
class TestHandler(webapp2.RequestHandler): 
    def get(self): 
     self.request.get(q) 
     self.response.write(q) 

class MainHandler(webapp2.RequestHandler): 
    def get(self): 
     self.response.write(form) 

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

誰でもエラーの原因を教えてください。

+0

ブラウザに表示します。 'q'をどこで定義しましたか?どのような行にあなたはそれに価値を与えましたか? :)それは魔法のように 'q'が何を指しているのか分からない。 "q"を文字列として扱いたい場合は、 '" q "'のような二重引用符で囲みます。 –

+0

'' q "' '' 'を書きません。 – formatkaka

答えて

4

あなたは書き込み引用符このようなqする必要があります:"q"

引用符がなければ、q変数として扱われ、あなたがそれを宣言していないので、エラーが発生します。

私は以下のようにTestHandlerクラスを変更しました。

class TestHandler(webapp2.RequestHandler): 
    def get(self): 
     q=self.request.get("q") 
     self.response.write(q) 

変数q=self.request.get("q")に値を割り当て、エラーは、Pythonはそれがあなたを語っている正確に何であるself.response.write(q)

+0

私はフォームに入力した内容を表示し、それを "q"という変数に入れてみました。私はコードラインを 'q = self.request.get(" q ")'に変更して、 'self.response.write(q)'が望むように動作するようにしました。それを指摘していただきありがとうございます。 – rainu

関連する問題