我正在使用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保持与以前相同。第二个重定向到新网址,但没有传递参数。
答案 0 :(得分: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
答案 1 :(得分:0)
你的第二种方法: self.redirect( “/ makeaquestion?标题= '%s' 的” %标题) 如果你从处理程序中的url中提取params,那么应该会成功:
class HandleMakeQuestion(webapp2.RequestHandler):
def get(self, params):
title = self.request.get('title')
logging.info("Title: %s" %(title))
这可能还需要处理程序路由中的一些正则表达式:
app = webapp2.WSGIApplication([('/makeaquestion([^/]+)', HandleMakeQuestion)])