2011-09-28 4 views
0

목표 : app 엔진의 기본 webapp 프레임 워크를 사용하여 다른 RequestHandler에 보낼 새로운 요청을 게시물 데이터와 함께 만들고 싶습니다. pageGenerator.post({'message':'the message','datum1':datum1,...}) 같은 뭔가 ...하나의 RequestHandler에서 다른 App Engine으로 게시

문제 설명 : 한 요청 처리기, pageGenerator를 호출은, 그것에 양식 페이지를 작성합니다. 사용자가 양식을 제출하면 다른 처리기로 이동합니다 (dataProcessor). dataProcessor이 제출 된 데이터에 문제가 있으면 'pageGenerator`의 post 메소드에 오류 메시지와 함께 제출 된 데이터를 보내고 pageGenerator는 오류 메시지가있는 페이지를 제공합니다.

어떻게 이런 방식으로 데이터 (및 제어)를 전달합니까? pageGenerator에서 self.request.get('message')으로 데이터를 가져 오십시오.

+1

dataProcessor가 RequestHandler 일 필요가있는 이유가 있습니까? pageGenerator가 내부적으로 호출하는 코드가 단순하다면 더 쉽지 않을까요? –

답변

3

지나치게 복잡하게 들리는 것 같습니다. 당신이 정말로 다른 핸들러 클래스에있을 "표시 형태"와 "공정 양식을"필요하면

class FormHandler(webapp.RequestHandler): 

    def get(self): 
    self.show_form() 

    def post(self): 
    if form_is_valid(): 
     handle_success() 
    else: 
     self.show_form({'feedback':'Validation failed'}) 

    def show_form(self, vals={}): 
    vals['field1'] = self.request.get('field1') 
    vals['field2'] = self.request.get('field2') 
    html = template.render('form.html', vals) 
    self.response.out.write(html) 

, 당신은 동일한 작업을 수행 할 수 : 그냥 다른 상황에서 호출 할 수있는 폼을 표시하는 일반적인 방법을 고려해 공통 상위 클래스에 show_form()을 정의하여

+0

양식은 게시물 데이터에 의존하여 주석 처리되는 항목 (및 편집 일 경우 주석의 키)을 결정하는 주석 상자입니다. 양식을 제출하는 것도 포스트 작업이므로 요청을 수신하기 위해 다른 처리기를 만들었습니다. 유효성 확인 함수는 두 번째 핸들러에 있으며 사용자를 첫 번째 핸들러로 다시 보내려고하지만 제출 된 데이터와 주석 처리중인 오브젝트의 키를 포함해야합니다. – Hank

+1

@Hank 아무도이 답변을 덜 유효하게 만듭니다. 두 가지 핸들러가 기능에 사용하는 공통 메소드 (기본 클래스의 경우) 또는 함수를 계속 호출 할 수 있습니다. 이것은 훨씬 간단하고 이식성있는 접근 방식입니다. –

+0

모두에게 감사드립니다. 나는이 일을 할 것이다. 한 번 전에 내 앱에서 상속을 사용하는 데 문제가 있었지만 방금 시작했는데 작동하는 것 같습니다. – Hank