2014-11-06 193 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