Python无限重定向循环302

Python无限重定向循环302,python,python-2.7,flask,routing,Python,Python 2.7,Flask,Routing,我目前遇到一个问题,flask中的一个页面陷入了无休止的重定向循环: 我已经有这么多的路线和方法,从来没有问题。我也不知道如何解决这个问题,下面是有这个问题的函数/路由(它是一个简单的邮件函数,甚至无法测试): 我甚至不知道哪些数据与解决此问题相关,但以下是html模板中的表单: <form id="kontaktform" method="POST" enctype="multipart/form-data" action=&

我目前遇到一个问题,flask中的一个页面陷入了无休止的重定向循环:

我已经有这么多的路线和方法,从来没有问题。我也不知道如何解决这个问题,下面是有这个问题的函数/路由(它是一个简单的邮件函数,甚至无法测试):

我甚至不知道哪些数据与解决此问题相关,但以下是html模板中的表单:

<form id="kontaktform" method="POST" enctype="multipart/form-data" action="{{ url_for('kontakt_send') }}">
    {{ form.hidden_tag() }}
  <div class="form-group">
    {{ form.name.label }} <span class="star"> * </span>
    {{ form.name(size=30, class = "form-control", placeholder="z.B. Markus Müller") }} 
  </div>
  
  <div class="form-group">
    {{ form.absender.label }} <span class="star"> * </span>
    {{ form.absender(class = "form-control", placeholder="z.B. markus.müller@gmx.de") }}  
  </div>
  
  <div class="form-group">
    {{ form.nachricht.label }} <span class="star"> * </span>
    {{ form.nachricht(size=500, class = "form-control", placeholder="z.B. Ihre Nachricht an uns") }} 
  </div>
  
  <div class="form-group">
    {{ form.check.label }} <span class="star"> * </span>
    {{ form.check(class = "form-control", placeholder="z.B. 9") }}   
  </div>
  
  <div class="">
  <button type="submit" class="btn mybtn"> Senden </button>
  </div>
  
</form>

{{form.hidden_tag()}}
{{form.name.label}}*
{form.name(size=30,class=“form control”,placeholder=“z.B.Markus Müller”)}
{{form.absender.label}}*
{{form.absender(class=“form control”,placeholder=“z.B.markus.müller@gmx.de") }}  
{{form.nachricht.label}}*
{form.nachricht(size=500,class=“form control”,placeholder=“z.B.Ihre-nachricht-an-uns”)}
{{form.check.label}}*
{{form.check(class=“form control”,placeholder=“z.B.9”)}
森登
编辑:


从else中删除第二个
返回重定向(url\u for('kontakt\u send'))
解决了这个问题,但是每次我加载页面时,它都会显示flash消息,即使我没有提交表单,这怎么可能?它通过重新加载页面提交表单

validate\u on\u submit
检查两件事:

  • 请求是一个帖子吗
  • post正文是否验证为指定的表单
  • 如果其中一个为false,则else块将运行并生成flash消息。由于对所有GET的第一次检查都将为false,因此在每个非表单提交的页面加载上都会收到flash消息(这也是为什么会有重定向循环)。第二个参数将在表单未验证时为false,从而再次导致flash消息


    所有的if/else块都会导致flash消息。这就是为什么每次请求都会得到一个。提交时验证检查两件事:

  • 请求是一个帖子吗
  • post正文是否验证为指定的表单
  • 如果其中一个为false,则else块将运行并生成flash消息。由于对所有GET的第一次检查都将为false,因此在每个非表单提交的页面加载上都会收到flash消息(这也是为什么会有重定向循环)。第二个参数将在表单未验证时为false,从而再次导致flash消息


    所有的if/else块都会导致flash消息。这就是为什么每个请求都会有一个。

    是的,谢谢,我已经弄明白了,但解释得很好。给你。是的,谢谢。我已经弄明白了,不过解释得很好。干得好。
    <form id="kontaktform" method="POST" enctype="multipart/form-data" action="{{ url_for('kontakt_send') }}">
        {{ form.hidden_tag() }}
      <div class="form-group">
        {{ form.name.label }} <span class="star"> * </span>
        {{ form.name(size=30, class = "form-control", placeholder="z.B. Markus Müller") }} 
      </div>
      
      <div class="form-group">
        {{ form.absender.label }} <span class="star"> * </span>
        {{ form.absender(class = "form-control", placeholder="z.B. markus.müller@gmx.de") }}  
      </div>
      
      <div class="form-group">
        {{ form.nachricht.label }} <span class="star"> * </span>
        {{ form.nachricht(size=500, class = "form-control", placeholder="z.B. Ihre Nachricht an uns") }} 
      </div>
      
      <div class="form-group">
        {{ form.check.label }} <span class="star"> * </span>
        {{ form.check(class = "form-control", placeholder="z.B. 9") }}   
      </div>
      
      <div class="">
      <button type="submit" class="btn mybtn"> Senden </button>
      </div>
      
    </form>