Python 名称错误:全局名称';q';没有定义
在下面的链接中,我可以在google应用程序引擎中运行Hello World程序 但是在我修改了main.py文件的代码(尝试新的处理程序)之后,我得到了以下错误Python 名称错误:全局名称';q';没有定义,python,google-app-engine,Python,Google App Engine,在下面的链接中,我可以在google应用程序引擎中运行Hello World程序 但是在我修改了main.py文件的代码(尝试新的处理程序)之后,我得到了以下错误 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,
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)
class TestHandler(webapp2.RequestHandler):
def get(self):
q=self.request.get("q")
self.response.write(q)
导入webapp2
form=”“”
"""
类TestHandler(webapp2.RequestHandler):
def get(自我):
self.request.get(q)
自我反应写(q)
类MainHandler(webapp2.RequestHandler):
def get(自我):
self.response.write(表单)
app=webapp2.WSGIApplication([
('/',MainHandler),('/Testform',TestHandler)
],debug=True)
有人能帮我找出错误是什么吗。你需要用引号写
q
,就像这样:“q”
如果没有引号,q
将被视为变量,并且由于您尚未声明它,因此会引发错误
我修改了TestHandler类,如下所示
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)
class TestHandler(webapp2.RequestHandler):
def get(self):
q=self.request.get("q")
self.response.write(q)
为变量
q=self.request.get(“q”)
赋值,并用self.response.write(q)
在浏览器中显示它,您需要用引号写q
,如下所示:“q”
如果没有引号,q
将被视为变量,并且由于您尚未声明它,因此会引发错误
我修改了TestHandler类,如下所示
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)
class TestHandler(webapp2.RequestHandler):
def get(self):
q=self.request.get("q")
self.response.write(q)
为变量
q=self.request.get(“q”)
指定一个值,并在浏览器中使用self.response.write(q)
将其显示在Python告诉您的错误中。您在哪里定义了q
?你在哪一行给了它一个值?:)它不会神奇地知道q
指的是什么。如果希望将“q”视为字符串,请将其放在双引号中,如“q”
。编写“q”
而不是q
。错误正是Python告诉您的。您在哪里定义了q
?你在哪一行给了它一个值?:)它不会神奇地知道q
指的是什么。如果希望将“q”视为字符串,请将其放在双引号中,如“q”
。写入“q”
而不是q
。我的目的是显示我在表单中键入的内容,在名为“q”的变量中获取该内容。我将代码行修改为q=self.request.get(“q”)
,这样self.response.write(q)
就可以按照我希望的方式工作。感谢您指出这一点。我的意图是显示我在表单中键入的内容,在名为“q”的变量中获取该内容。我将代码行修改为q=self.request.get(“q”)
,这样self.response.write(q)
就可以按照我希望的方式工作。谢谢你指出这一点。