gpt4 book ai didi

python - Flask 提交表单时返回 'Method not allowed'

转载 作者:行者123 更新时间:2023-12-01 00:17:23 25 4
gpt4 key购买 nike

我正在密切关注very brief tutorial from Flask-wtf here 。我遇到一个问题,当我在提交页面表单中提交我的姓名后,它会显示“405 Method Not allowed”消息,而不是将我引导至成功页面。

from flask import Flask, render_template, redirect
from forms import MyForm

app = Flask(__name__)
app.secret_key = 'mysecretKey'


@app.route('/submit', methods=('GET', 'POST'))
def submit():
form = MyForm()
if form.validate_on_submit():
return redirect('/success')
return render_template('submit.html', form=form)


@app.route('/success')
def success():
return "Well done for entering your name!"


if __name__ == '__main__':
app.run(debug=True)

我的表格在这里:

from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired


class MyForm(FlaskForm):
name = StringField('name', validators=[DataRequired()])

我的submit.html代码如下所示(就像教程中一样):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Password page</title>
</head>
<body>

<form method="POST" action="/">
{{ form.hidden_tag() }}
{{ form.name.label }} {{ form.name(size=20) }}
<input type="submit" value="Go">
</form>

</body>
</html>

编辑:if form.validate_on_submit() 条件不返回 True,因此循环的内容不会执行。我在其中添加了一个简单的打印语句,但它没有执行。

最佳答案

如果我假装确切地知道所有相对路径是如何解析的,那我就是在撒谎。但是,您可以通过更改来解决此问题:

<form method="POST" action="/">

至:

<form method="POST" action="{{ url_for('submit') }}">

将问题传递给图书馆来解决确实是有意义的事情之一。使用url_for在渲染模板时,它也适用于 Jinja2。

关于python - Flask 提交表单时返回 'Method not allowed',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59225556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com