0

我正在使用 Google 应用引擎,我想在提交表单时重定向到带有参数的另一个页面。

这是第一种形式:

<form method="post" class="form-inline pull-left">
   <div class="input-append">
     <input type="text" required name="askquestion" class="span5"/>
     <button type="submit" name="askbutton"  class="btn-u" value="askbutton">Ask</button>
   </div>
</form>

这里是后端:

askbutton = self.request.get("askbutton")
if askbutton:
  title = self.request.get("askquestion")
  self.render("makeaquestion.html",title=title)

我已经尝试过另一个:

self.redirect("/makeaquestion?title='%s'"%title)

第一个渲染新的 html 并传递参数,但 url 保持与以前相同。第二个重定向到新的 url 但不传递参数。

4

2 回答 2

2

设置表单的 action 属性:

<form action="/makequestion" method="post" class="form-inline pull-left">
   <div class="input-append">
     <input type="text" required name="askquestion" class="span5"/>
     <button type="submit" name="askbutton"  class="btn-u" value="askbutton">Ask</button>
   </div>
</form>

这将提交一个发布请求(带有填写的数据)到/makequestion

于 2013-05-08T16:48:08.417 回答
0

您的第二种方法: self.redirect("/makeaquestion?title='%s'"%title) 如果您从 Handler 中的 url 中提取参数,则应该成功:

 class HandleMakeQuestion(webapp2.RequestHandler):
    def get(self, params):
        title = self.request.get('title')
        logging.info("Title: %s" %(title))

这可能还需要处理程序路由中的一些正则表达式:

app = webapp2.WSGIApplication([('/makeaquestion([^/]+)', HandleMakeQuestion)])
于 2013-05-11T03:26:44.670 回答