【问题标题】:SelectField submit Method not allowed不允许 SelectField 提交方法
【发布时间】:2019-10-18 16:29:46
【问题描述】:

当我从选择字段中选择数据并按“选择”(提交)时,我得到“方法不允许”。为什么?

run.py

from flask import Flask, render_template, flash
from flask_wtf import FlaskForm
from flask_wtf.csrf import CSRFProtect
from wtforms import SelectField, SubmitField


app = Flask(__name__)
csrf = CSRFProtect(app)

class Config(object):
    SECRET_KEY ='123123123qweasdzxc'

app.config.from_object(Config)

class Exploits(FlaskForm):
    language = SelectField(u'Programming Language', choices=[('cpp', 'C++'), ('py', 'Python'), ('text', 'Plain Text')])
    use = SubmitField('Choose')


@app.route("/")
def home():
    form = Exploits()
    if form.validate_on_submit():
        print('SUBMIT!!!')
        flash('Botton is submited ' + form.language.data)
    return render_template('index.html', form=form)



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

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post" novalidate>
    {{ form.csrf_token }}
    {{ form.language }}
    {{ form.use }}
</form>
</body>
</html>

【问题讨论】:

    标签: python flask flask-wtforms


    【解决方案1】:

    您需要允许 POST 方法:

    @app.route("/", methods=['GET', 'POST'])
    

    【讨论】:

    • 哦,是的。谢谢你。可能你知道。如果我要添加两个SecondField,但不会使用它,当按下提交时没有任何反应,只会渲染页面。 ' class Exploits(FlaskForm): test = SelectField(u'Test', Choices=[('0', '0'), ('1', '1')]) language = SelectField(u'Programming Language',选择=[('cpp', 'C++'), ('py', 'Python'), ('text', 'Plain Text')]) 使用 = SubmitField('Выбрать') '
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多