最近6个小时,我一直在坚持这一点。我为这条路线写了100多行代码,但没有用。因此,我花了最后几个小时来尝试查找错误并意识到,接收POST请求的基本功能甚至无法正常工作,而且我无法全神贯注。
因此,这是我要尝试的操作:我有一个非常基本的表单,其中包含三个字段和一个提交按钮。我想在search.html文件中显示它。转到/ search时,HTML会与字段一起完美呈现。我输入参数并提交。在过去的几个小时中,我没有收到任何错误。我只看到:127.0.0.1 - - [27/Nov/2019 01:42:52] "POST /search HTTP/1.1" 200 -
200表示已收到POST请求,对吗?但是它不会返回“成功!”。它只是再次返回search.html,好像什么都没发生。
我在这里错了什么?请帮忙,因为最后几个小时是最令人沮丧的调试会话,没有我遇到的任何错误。
routes.py:
@app.route("/search", methods=['GET', 'POST'])
def search():
if 'code' not in session:
return redirect(url_for('secret'))
if 'email' not in session:
return redirect(url_for('login'))
else:
form = SearchForm()
return render_template('search.html', form=form)
if request.method == 'POST':
if form.validate() == False:
return render_template("search.html", form=form)
else:
return "Success!"
forms.py:
class SearchForm(Form):
place = StringField('place', validators=[DataRequired("Please enter a place.")])
radius = IntegerField('radius', validators=[DataRequired("Please enter a number between 1 and 100000"), NumberRange(min=1, max=100000)])
keyword = StringField('keyword', validators=[DataRequired("Please enter a keyword.")])
submit = SubmitField("Search")
HTML:
<form method="POST" action="/search">
{{ form.hidden_tag() }}
{{ form.place }}
{{ form.radius }}
{{ form.keyword }}
{{ form.submit }}
</form>