gpt4 book ai didi

python - Flask-wtf 表单不发送表单数据?

转载 作者:行者123 更新时间:2023-12-01 06:22:36 25 4
gpt4 key购买 nike

对于上下文,我正在尝试创建一个flask-wtf 表单。我已经这样做了,并且显示正确:

class LoginForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
submit = SubmitField('Sign In')

@APP.route('/')
def index():
return render_template('login.html', form=LoginForm())

@APP.route('/login', methods=['POST', 'GET'])
def login():
print(request.method, request.get_json())
return redirect('/') # temporary

这是 html:

{% block content %}
<h1>Sign In</h1>
<form action="/login" method="post" enctype='application/json'>
{{ form.hidden_tag() }}
<p>
{{ form.username.label }}<br>
{{ form.username(size=32) }}
</p>
<p>
{{ form.password.label }}<br>
{{ form.password(size=32) }}
</p>
<p>{{ form.submit() }}</p>
</form>
{% endblock %}

但是,当我输入任何内容并单击“提交”时,从 login() 打印的内容是 POST None。我不明白为什么没有发送数据。为了尝试强制它为 json,我添加了 enctype='application/json' 并且之前或之后没有添加任何内容。

我错过了什么?

最佳答案

您无法将表单发布为 JSON,只有 3 options for enctype .

在您的 login() 函数中,您可以通过 request.form 访问表单,或者在使用 wtforms 时,在 View 中初始化表单以填充 hte 数据:

def login():
login_form = LoginForm()

if login_form.validate_on_submit(): # this runs only on POST, and checks validation
username = form.username.data
password = form.password.data
...

关于python - Flask-wtf 表单不发送表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60290017/

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