错误:不是全部字符串格式化期间转换的参数

2024-07-05 14:54:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个注册页,当我提交的表格,我得到这个错误:不是全部字符串格式化期间转换的参数

class RegistrationForm(Form):
email = StringField('Email address')
password = PasswordField('password')
name = StringField('Name')

@app.route('/register/', methods=['GET', 'POST'])
def register():
try:
    form = RegistrationForm(request.form)
    if request.method == 'POST':
        email = form.email.data
        password = sha256_crypt.encrypt((str(form.password.data)))
        con = connection()
        cur=con.cursor()
        x = cur.execute("SELECT * FROM user WHERE username = (%s)",(thwart(email)))
        if int(x) > 0:
            return render_template('register.html',form=form)
        else:
            cur.execute("INSERT INTO user (username,password,name) VALUES (%s,%s,%s);",(thwart(email),thwart(password),thwart(name),))
            con.commit()
            cur.close()
            con.close()
            return redirect(url_for('dashboard'))

    return render_template('register.html', form=form)
except Exception as e:
    return str(e)

Tags: nameformregisterdatareturnifemailrequest
1条回答
网友
1楼 · 发布于 2024-07-05 14:54:00

x = cur.execute("SELECT * FROM user WHERE username = (%s)",(thwart(email)))

execute的第二个参数应该是元组,您缺少一个,

cur.execute("SELECT * FROM user WHERE username = (%s)",(thwart(email),))

我想您也不需要()围绕%s,但这取决于表的实际外观。在

进一步澄清:

('str')将计算到字符串'str',而不是包含它的元组。在

为了创建一个元组,必须包含一个逗号:('str',)。在

相关问题 更多 >