如何将页面重定向到错误页面

时间:2016-02-18 05:34:48

标签: python html redirect

所以这是我的代码,我希望它重定向页面,如果用户没有输入任何内容,则按“添加”。我需要一些帮助         {%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 %}

1 个答案:

答案 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中执行此操作。