2013-05-08 209 views
0

我正在使用Google应用程序引擎,并且当表单引用时,我想用参数重定向到另一个页面。Python jinja2重定向传递参数

这是第一种形式:

<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,但没有传递参数。

回答

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> 

这将提交一个POST请求(与填写的数据)/makequestion

0

你的第二个方法: self.redirect(“/ ?makeaquestion标题= '%s' 的“%标题) 应该是成功的,如果你是从网址在你的处理器拉动PARAMS:

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

这可能还需要一些正则表达式在你的处理器的路由:

app = webapp2.WSGIApplication([('/makeaquestion([^/]+)', HandleMakeQuestion)]) 
+0

他是用POST得不到 – dav1d 2013-05-12 17:51:12

+0

第二种方法重定向,其中包括在网址参数:获取。 – rGil 2013-05-12 18:04:59

+0

正确,他想将它作为POST传递。 – dav1d 2013-05-12 18:15:34