这是
我遵循了很多线程,这些问题表明问题代码存在于表单类的验证器中,但是我已经检查了它们。.此处为fo中的类代码
1.这是来自forms.py的代码
from flask_wtf import Form
from wtforms import StringField, SubmitField, BooleanField, PasswordField
from wtforms.validators import DataRequired, Length, email, EqualTo, Required
class RegistrationForm(Form):
username = StringField('username', validators=[DataRequired(),
Length(min=2, max=20)])
email = StringField('email', validators=[DataRequired(), email])
password = PasswordField('password', validators=[DataRequired()])
conf_password = PasswordField('conf_pass', validators=[DataRequired(),
EqualTo('password', message='passwords must match')])
submit = SubmitField('sign up')
2.这是模板文件中的代码
{% extends 'layout.html' %}
{% block content %}
<div class="card" width="300px">
<form method="post" action="">
{{ form.hidden_tag() }}
<feildset>
<legend>
join Today
</legend>
</feildset>
<hr>
{{ form.username.label }}
{{ form.username }}
{{ form.email.label }}
{{ form.email }}
{{ form.password.label }}
{{ form.password }}
{{ form.conf_password.label }}
{{ form.conf_password() }}
{{ form.submit(class='success button centering') }}
</form>
</div>
{% endblock %}
3.这是来自app.py的代码
@app.route('/reg', methods=['GET', 'POST'])
def show_reg():
form = RegistrationForm()
if form.validate_on_submit():
flash(f'Account created for {form.username.data}!', 'success')
return redirect(url_for('home'))
return render_template('register.html', title='register', form=form)
3. stacktrace:
Traceback (most recent call last):
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/root/PycharmProjects/site/app.py", line 37, in show_reg
if form.validate_on_submit():
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/flask_wtf/form.py", line 101, in validate_on_submit
return self.is_submitted() and self.validate()
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/wtforms/form.py", line 310, in validate
return super(Form, self).validate(extra)
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/wtforms/form.py", line 152, in validate
if not field.validate(self, extra):
File "/root/PycharmProjects/site/venv/lib/python3.6/site-packages/wtforms/fields/core.py", line 206, in validate
stop_validation = self._run_validation_chain(form, chain)
File "/root/PycharmProjects/site/venv/lib/python3.6/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
参考方案
最好的机会是,问题出在email
验证器中:wtforms期望一个类实例,但是您已经传递了一个类,因此,当wtforms执行validator(form, self)
时,它们将调用类的init方法,而不是实例的调用方法。更改为validators=[DataRequired(), email()]
应该可以解决。
我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…
python websocketapp on_message()方法不起作用 - python我使用python通过以下python代码从nodejs服务器接收流数据。Websocket假定获取实时流数据。而且我认为python的WebSocketApp获取流数据的唯一方法是通过on_message()。但是,尽管可以成功建立连接,但永远不会调用on_message()。 on_open()仍被调用,并且ping消息已定期发送到服务器以维持心跳。我通…
R'relaimpo'软件包的Python端口 - python我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。
如何用'-'解析字符串到节点js本地脚本? - python我正在使用本地节点js脚本来处理字符串。我陷入了将'-'字符串解析为本地节点js脚本的问题。render.js:#! /usr/bin/env -S node -r esm let argv = require('yargs') .usage('$0 [string]') .argv; console.log(argv…
TypeError:'str'对象不支持项目分配,带有json文件的python - python以下是我的代码import json with open('johns.json', 'r') as q: l = q.read() data = json.loads(l) data['john'] = '{}' data['john']['use…