我目前存在一个问题,即我的一个烧瓶页面属于无限重定向循环:
我已经有很多路线和方法,并且从来没有遇到任何问题。我也不知道如何解决它,这里有功能/路线有这个问题(它是一个简单的邮件功能,甚至无法测试它):
@app.route('/kontakt/', methods=["GET", "POST"])
def kontakt_send():
form = KontaktMailForm()
if form.validate_on_submit():
if form.check.data == 9:
simplemail.Email(
from_address = form.absender.data, #request.form["absender"],
to_address = u"email@email.de",
subject = u"Nachricht - Kontaktformular von " + form.name.data,
message = form.nachricht.data #request.form["nachricht"]
).send()
flash("Nachricht erfolgreich versandt")
return redirect(url_for('kontakt_send'))
else:
flash("Was ist 4+5?")
return redirect(url_for('kontakt_send'))
else:
flash("Alle Felder muessen ausgefuellt werden")
return redirect(url_for('kontakt_send'))
return render_template('kontakt.html', form=form)
我甚至不知道哪些数据与解决此问题相关,但这里是来自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>
修改
从其他地方重新获得第二个return redirect(url_for('kontakt_send'))
解决了这个问题,但每次我加载页面时都会向我显示flash消息,尽管我没有提交表单,但这怎么可能?它通过重新加载页面提交表单
答案 0 :(得分:1)
xcodebuild -target ‘AppName.xcodeproj’ -scheme ‘AppName’ -configuration “Debug/Release” -sdk iphoneos6.0/5.0/4.0 -arch “armv7 armv7s” CONFIGURATION_BUILD_DIR=’BuildDirectoryName‘ ONLY_ACTIVE_ARCH=NO/YES
检查两件事:
如果其中任何一个为假,则else块运行并生成flash消息。由于对所有GET的第一次检查都是假的,因此您将在每个不是表单提交的页面加载上收到flash消息(这也是您具有重定向循环的原因)。当表单未验证时,第二个将为false,从而再次导致flash消息。
所有if / else块都会导致闪存消息。这就是为什么你在每次请求时得到一个。