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

在flask的web項目中出現如下錯誤:

127.0.0.1 - - [12/Dec/2019 18:32:47] "POST /login HTTP/1.1" 500 -
127.0.0.1 - - [12/Dec/2019 18:33:37] "GET /login HTTP/1.1" 200 -
[2019-12-12 18:33:41,714] ERROR in app: Exception on /login [POST]
Traceback (most recent call last):
  File "E:\Python_virtualenvs\envs\lib\site-packages\flask\app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "E:\Python_virtualenvs\envs\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "E:\Python_virtualenvs\envs\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "E:\Python_virtualenvs\envs\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "E:\Python_virtualenvs\envs\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "E:\Python_virtualenvs\envs\lib\site-packages\flask\app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "E:\pycharmWorkSpace\flask\flask_study\myapp\views.py", line 30, in login
    if form.validate_on_submit():
  File "E:\Python_virtualenvs\envs\lib\site-packages\flask_wtf\form.py", line 101, in validate_on_submit
    return self.is_submitted() and self.validate()
  File "E:\Python_virtualenvs\envs\lib\site-packages\wtforms\form.py", line 310, in validate
    return super(Form, self).validate(extra)
  File "E:\Python_virtualenvs\envs\lib\site-packages\wtforms\form.py", line 152, in validate
    if not field.validate(self, extra):
  File "E:\Python_virtualenvs\envs\lib\site-packages\wtforms\fields\core.py", line 206, in validate
    stop_validation = self._run_validation_chain(form, chain)
  File "E:\Python_virtualenvs\envs\lib\site-packages\wtforms\fields\core.py", line 226, in _run_validation_chain
    validator(form, self)
TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given
127.0.0.1 - - [12/Dec/2019 18:33:41] "POST /login HTTP/1.1" 500 -

錯誤地方是:

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired


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

代碼中的 validators=[DataRequired] 改成 validators=[DataRequired()] 即可

發佈了22 篇原創文章 · 獲贊 11 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章