2014-11-06 4 views
-1

사용자가 양식을 제출할 때 서버로 다시 전송되는 url의 매개 변수를 가져 오려고합니다.Python이 url 매개 변수를 가져올 수 없습니다.

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

emailLink은이 링크로 사용되는 :이 오류를 얻을 그러나 AttributeError: 'HTTPServerRequest' object has no attribute 'get'

내 URL이 같이 URL 문자열이 생성 http://127.0.0.1:8000/reset?key=0OeKkQcSRXiy6yAvtgd9GGv4DhO1t0EYuybjHG5Buzo=

입니다. 내가 여기에 그것을 사용하려고 다음은 '키를 말한다면, self.get_argument()를 사용하여, 나는 다른 형태의 데이터 벌금을받을

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

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

:

나는대로 위의 URL에서 PARAM key의 값을 검색에 시도 '인수가 누락되었습니다.

예를 보면 urlparse을 사용하지만 양식을 제출할 때이 매개 변수를 사용하여 URL의 매개 변수를 가져올 수 있습니다.

+0

어쩌면 컨텍스트가 다른 사용자에게 명백 할 수도 있지만 전체 클래스 정의를 표시 할 수 있습니까? 오류는 'HTTPServerRequest'객체에 'get'속성이 없지만 'request'가 설정된 위치와 클래스가 정의되는 위치는 무엇입니까? –

+0

전체 클래스를 구두로 질문을 편집했습니다 – user94628

+1

어떤 프레임 워크입니까? BaseHandler는 어디에서 왔습니까? –

답변

2

나는 Tornado 또는 그 웹 프레임 워크를 사용한 적이 없지만 documentation은 요청 클래스가 get 메서드를 정의하지 않는다는 것을 분명히합니다. Flask 또는 webapp2와 혼동을 일으킬 수도 있습니다. self.request.arguments['key'] 또는 self.get_arguments('key')을 할 수있는 것 같습니다.

+0

감사합니다; 네,'self.get_arguments ('key')'를 사용해야했습니다. 나는'def post'가 아니라'def post'에 잘못 넣었습니다. – user94628