2014-11-06 194 views
-1

我想要获取用户提交表单时发送回服务器的url的参数。不过,我得到这个错误AttributeError: 'HTTPServerRequest' object has no attribute 'get'Python无法获取网址参数

我的网址http://127.0.0.1:8000/reset?key=0OeKkQcSRXiy6yAvtgd9GGv4DhO1t0EYuybjHG5Buzo=

创建URL字符串为:

keyVal=base64.b64encode(uuid.uuid4().bytes + uuid.uuid4().bytes) 
emailLink = 'http://127.0.0.1:8000/reset?key=%s'%keyVal 

emailLink是用作链接。

我试着在上面的网址检索帕拉姆key的价值:

class ResetPwdHandler(tornado.web.RequestHandler):  
    def get(self): 
     self.render("reset.html") 

    def post(self): 
     value = self.request.get('key') 
     print value 

我收到了其他形式的数据精细,采用self.get_argument(),如果我尝试在这里使用它,然后它说“键'缺少论据。

我看到使用urlparse的示例,但是如何在提交表单时使用它来获取url的参数。

+0

也许上下文对其他用户是显而易见的,但是您能显示完整的类定义吗?错误在于'HTTPServerRequest'对象没有'get'属性,但'request'在哪里设置,其类定义在哪里? – 2014-11-06 19:54:40

+0

我已经编辑了问题来鞋全班 – user94628 2014-11-06 19:56:27

+1

这是什么框架? BaseHandler从哪里来? – 2014-11-06 19:58:08

回答

2

我从来没有使用Tornado或其网络框架,但documentation很清楚请求类没有定义get方法。您可能会将它与Flask或webapp2混淆。看起来你可以做self.request.arguments['key']self.get_arguments('key')

+0

谢谢;是的,我必须使用'self.get_arguments('key')',我在'def post'而不是'def post'中有错误。 – user94628 2014-11-06 21:10:11