如何在 GAE 中将多个变量从一个处理程序传递到另一个处理程序?
How do I pass multiple variables from one handler to another in GAE?
我想将用户重定向到确认页面,如果他们输入有效主题,该页面将同时显示主题和内容(如果有),但如果主题为空白,则留在同一页面并显示错误或超过三百个字符。
这是我的后端代码:
def post(self):
subject = self.request.get('subject')
content = self.request.get('content')
a, b = self.validSubject(subject)
if a == True and b == True:
self.redirect('/confirm')
else:
if a == False:
error = "Title cannot be blank!"
if b == False:
error = "Title cannot be over 300 characters."
self.render("newpost.html", subject = subject, content = content, error = error)
这是 newpost.html 模板的代码:
<h2>New Question</h2>
<hr>
<form method="post">
<label>
<div>Title</div>
<input type="text" id="subject" name="subject">
</label>
<label>
<div>
<textarea name="content" id="postcontent"></textarea>
</div>
</label>
<b><div class="error">{{error}}</div></b>
<input type="submit">
</form>
我试过将 action="/confirm"
添加到 POST 表单,但即使出现错误也会重定向到 /confirm。我查看了 webapp2 文档,但找不到任何关于如何在重定向上传递变量的信息。 (https://webapp-improved.appspot.com/api/webapp2.html#webapp2.redirect)
我正在使用 webapp2 和 jinja2。提前感谢您的帮助,我已经研究这段代码很长一段时间了:(
无论您使用何种后端平台或语言,您尝试编写的模式在 http 中都不起作用。您的 HTML 正在 post 连接到服务器并且 GAE 代码正在处理 post。在交互的那一刻,浏览器已经提交并正在等待服务器的响应。你不能在那个时候停止提交,因为它已经发生了。
您应该考虑在将表单提交到服务器之前验证 Javascript 中的输入。这样,如果您的数据无效,您可以首先禁止提交表单。
查看以下问题以查看示例:
JavaScript code to stop form submission
我想将用户重定向到确认页面,如果他们输入有效主题,该页面将同时显示主题和内容(如果有),但如果主题为空白,则留在同一页面并显示错误或超过三百个字符。
这是我的后端代码:
def post(self):
subject = self.request.get('subject')
content = self.request.get('content')
a, b = self.validSubject(subject)
if a == True and b == True:
self.redirect('/confirm')
else:
if a == False:
error = "Title cannot be blank!"
if b == False:
error = "Title cannot be over 300 characters."
self.render("newpost.html", subject = subject, content = content, error = error)
这是 newpost.html 模板的代码:
<h2>New Question</h2>
<hr>
<form method="post">
<label>
<div>Title</div>
<input type="text" id="subject" name="subject">
</label>
<label>
<div>
<textarea name="content" id="postcontent"></textarea>
</div>
</label>
<b><div class="error">{{error}}</div></b>
<input type="submit">
</form>
我试过将 action="/confirm"
添加到 POST 表单,但即使出现错误也会重定向到 /confirm。我查看了 webapp2 文档,但找不到任何关于如何在重定向上传递变量的信息。 (https://webapp-improved.appspot.com/api/webapp2.html#webapp2.redirect)
我正在使用 webapp2 和 jinja2。提前感谢您的帮助,我已经研究这段代码很长一段时间了:(
无论您使用何种后端平台或语言,您尝试编写的模式在 http 中都不起作用。您的 HTML 正在 post 连接到服务器并且 GAE 代码正在处理 post。在交互的那一刻,浏览器已经提交并正在等待服务器的响应。你不能在那个时候停止提交,因为它已经发生了。
您应该考虑在将表单提交到服务器之前验证 Javascript 中的输入。这样,如果您的数据无效,您可以首先禁止提交表单。
查看以下问题以查看示例:
JavaScript code to stop form submission