我已经使用iron-form实现了一个表单,我可以在服务器中处理它,但后来我无法弄清楚如何获得响应,我无法重定向到另一个页面或刷新。如果我删除'is =“铁形式”,那么它可以正常工作。我正在使用聚合物1.0,谷歌应用程序引擎和jinja2进行模板化。
HTML:
<div class="c-form">
<h1>"Contact us"</h1>
<p> {{ sucess-message }} </p>
<form is="iron-form" id="contact-form" method="post" action="/formhandler">
<paper-input label="Name" name="name" required></paper-input>
<paper-textarea label="Message" name="msj" required></paper-textarea>
<paper-button raised class="colorful" onclick="submitForm()">Send</paper-button>
</form>
</div>
<script>
function submitForm() {
document.getElementById('contact-form').submit();
}
</script>
main.py:
class FormHandler(MainHandler):
def post(self):
self.name = self.request.get('name')
self.msj = self.request.get('msj')
mesj = MensajesDB.new_msj(self.name, self.msj)
mesj.put()
self.respose.out.write("SUCCESS") //Here I would like to render the template,
but I can't get it to render or redirect to
another page...
class MainPage(MainHandler):
def get(self):
self.render("home.html", route="home", title="Home")
app = webapp2.WSGIApplication([
('/', MainPage),
('/formhandler', FormHandler),
], debug=True)
答案 0 :(得分:0)
看起来您可能无法调试故障发生的位置。我建议您熟悉Chrome DevTools - 特别是网络选项卡,它允许您监控从JS到服务器的请求,然后是服务器响应。
在服务器端应用程序中,您可以使用FormHandler.post
变量as documented here从self.request.POST
方法中访问整个请求正文。
如果要在保存到数据存储区后重定向,则需要删除self.response.out.write()
行并改用self.redirect()
。请注意,您无法在单个响应中发送响应正文/字符串和重定向。