【问题标题】:TypeError: __init__() takes from 1 to 2 positional arguments but 3 were givenTypeError: __init__() 接受 1 到 2 个位置参数,但给出了 3 个
【发布时间】:2023-03-03 16:18:01
【问题描述】:

我正在学习 Flask,但我的表单无法正常工作。表单应获取用户名并在同一页面上打印

表格:

class LoginForm(FlaskForm):
    name = StringField(
        'What is your name?',
        validators=[Length(min = 4, max = 25), Required])
    submit = SubmitField('Submit')

观看次数:

@app.route('/login/', methods=['GET','POST'])
def login():
    name = None
    formi = LoginForm()
    if formi.validate_on_submit():
        name = formi.name.data
        formi.name.data = ''
    return render_template('LoginForm.html', formi = formi, name = name)

模板:

<form action="" method="post" name="login">
{{ formi.hidden_tag() }}
<p>Enter your nickname</p>
{{ formi.name(size=25) }}
<input type="submit" value="Submit form">
</form>

错误:

TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given

【问题讨论】:

  • 尝试实例化一个Required验证器:Required()。

标签: python flask flask-wtforms


【解决方案1】:

请检查拼写是否正确>“formi”

@app.route('/login/', methods=['GET','POST'])
def login():
    name = None
    **formi** = LoginForm()
    if formi.validate_on_submit():
        name = formi.name.data
        formi.name.data = ''
    return render_template('LoginForm.html', formi = formi, name = name)

【讨论】:

    猜你喜欢
    • 2015-07-13
    • 2017-04-22
    • 2017-10-09
    • 2017-02-18
    • 2022-01-04
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    相关资源
    最近更新 更多