[英]Got the error TypeError: execute() takes no keyword arguments
我正在尝试使用 python 和 sqlite3 构建一个注册/登录系统。 我的代码似乎有问题。
if request.form.get("password") != request.form.get("confirm"):
return apology(" Passwords doesn't match")
# try:
prim_key = c.execute("INSERT INTO accounts (username, hash) VALUES (:username, :hash)",
username = request.form.get("username"),
hash = generate_password_hash(request.form.get("password")))
conn.commit()
# except:
# return apology("Sorry! username already exists!", 403)
# if prim_key is None:
# return apology("Failed to register! something went wrong!", 403)
# user_if = prim_key
return redirect("/")
else:
return render_template("register.html")
我评论了一些行,以确定是否有问题。 在引用之前,我不断收到错误“对不起。用户名已经存在!”。
现在,在我运行应用程序时引用这些行后,我得到了
文件“application.py”,第 76 行,寄存器 prim_key = c.execute("INSERT INTO accounts (username, hash) VALUES (:username, :hash)", TypeError: execute() 没有关键字 arguments
我想知道我是否遗漏了这些是我导入的模块。
import sqlite3
from flask import Flask, flash, jsonify, redirect, render_template, request, session
from werkzeug.security import check_password_hash, generate_password_hash
import secrets
如果我不能在这里使用关键字 arguments,有没有办法解决这个问题? 还是我做错了整个事情? 我是 Python 的新手,所以我不知道这是否只是一个愚蠢的问题。 我几乎阅读了所有类似这样的问题,但我想不出任何办法来完成这项工作。 所以任何帮助表示赞赏。 感谢您的时间!
如错误所示, execute
不使用任何关键字 arguments。 您只需要传递一个值的字典:
prim_key = c.execute("INSERT INTO accounts (username, hash) VALUES (:username, :hash)",
{ 'username': request.form.get("username"),
'hash': generate_password_hash(request.form.get("password"))
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.