所以这是我的代码,我希望它重定向页面,如果用户没有输入任何内容,则按“添加”。我需要一些帮助 {%extends“base.html”%}
{% block content %}
<form>
<h2>Add a Food</h2>
<input type="text" name="food">
{% if items %}
{% for item in items %}
<input type="hidden" name="food" value="{{item}}">
{% endfor %}
{% endif %}
<button>Add</button>
<br>
<br>
<h2>Shopping List</h2>
<ul>
{% if items %}
{% for item in items %}
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
<h3>comments</h3>
{% for comement in item %}
<li>{{ comment }}</li>
{% endfor %}
</ul>
</form>
{% endblock %}
答案 0 :(得分:0)
重定向实际上不会进入表单的HTML页面(如果你发布HTML,已经太晚了),而是在表单目标的HTTP处理程序中。也就是说,如果您的表单如下:
<form action="/form/submission" method="post">
...“/ form / submission”的处理程序将执行此重定向。也就是说,它会发出:
HTTP/1.1 303 See Other
Location: http://your.server.com/path/to/error
而不是:
HTTP/1.1 200 OK
Content-Type: text/html
... (content here) ...
如何在处理程序中执行此操作取决于特定的服务器环境和框架。对于webapp2和Google App Engine,它看起来像这样:
class PostHandler(webapp2.RequestHandler):
def post(self):
if missing_inputs(self.request):
self.response.redirect_to(new_location)
process_form_submission(self.request)
但是,为了提供更具体的帮助,我们需要了解服务器端技术。
通过包含分配给变量window.location.href
的JavaScript,还可以在客户端上执行“重定向”;但是,如果您在JavaScript中进行验证,那么在当前页面上注释错误会更有意义(例如,在表单上方显示/显示错误消息),而不是将用户带到完全不同的页面(如果您是在JavaScript中执行此操作。