Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我总是得到一个盲参数错误?_Python_Sql_Postgresql_Sqlalchemy - Fatal编程技术网

Python 为什么我总是得到一个盲参数错误?

Python 为什么我总是得到一个盲参数错误?,python,sql,postgresql,sqlalchemy,Python,Sql,Postgresql,Sqlalchemy,问题是: 每当我试图从UI注册用户时,我都会收到一个错误。其想法是提交表单并将数据导入python,然后运行INSERT查询,以便将其添加到数据库中以允许登录 样本输入: 姓名:基隆 密码哈希: pbkdf2:sha256:150000$aQfm996V$af032bc39170c1e2b59cab53691ebb48e50d3824b851de6921c56f07f4a10d3c 电邮:Kieron@example.com 错误消息: 数据库连接: 数据库与sqlalchemy引擎绑定连接,而

问题是:

每当我试图从UI注册用户时,我都会收到一个错误。其想法是提交表单并将数据导入python,然后运行INSERT查询,以便将其添加到数据库中以允许登录

样本输入:

姓名:基隆

密码哈希: pbkdf2:sha256:150000$aQfm996V$af032bc39170c1e2b59cab53691ebb48e50d3824b851de6921c56f07f4a10d3c

电邮:Kieron@example.com

错误消息:

数据库连接:

数据库与sqlalchemy引擎绑定连接,而不使用ORM,目的是了解更多关于在不使用ORM的情况下进行绑定的信息,应用程序配置如下:

app=烧瓶名称__ app.config['DATABASE_URL']=数据库的URL 检查环境变量 如果不是os.getenvDATABASE\u URL: 未设置raise RuntimeErrorDATABASE\u URL 配置会话以使用文件系统 app.config[SESSION_PERMANENT]=False app.config[会话类型]=文件系统 Sessionapp 建立数据库 engine=create_engineos.getenvDATABASE_URL db=作用域_会话MakerBind=引擎 与问题相关的代码:

我相信下面的路线是问题的根源,我不太确定我在其中哪里出了问题。路线的整体构思是:

清除上一个会话并从表单中获取详细信息

对数据库运行表单条目以确保条目唯一

创建密码散列并输入数据库

@app.route/register,方法=['POST','GET'] def寄存器: 会话。清除 如果request.method==“POST”: 检查是否有空字段 如果不是request.form.getname: 返回apology必须提供用户名403 elif not request.form.getpassword: 返回apology必须提供密码,403 elif not request.form.getemail: 返回apology必须提供电子邮件,403 从表单中获取变量 user=request.form.getname password=request.form.getpassword email=request.form.getemail 散列密码 passwordHash=generate_password_hashpassword,method='pbkdf2:sha256',salt_length=8 检查电子邮件和用户名是否不存在 如果db.executeSELECT name FROM users,其中name=:user,{user:user}.rowcount!=0: 返回已获取的apologyUsername,403 elif db.executeSELECT email FROM user,其中email=:email,{email:email}.rowcount!=0: return ApologyMail在系统403中已经有一个帐户 添加到数据库 db.executeINSERT进入用户名、密码、电子邮件值:user、:password、:email、{user:user、password:passwordHash、email:email} db.commit 返回重定向/登录 返回render_templateregister.html 问题摘要:

我相信错误来自INSERT查询,但是我不确定在哪里


我哪里出错了?我如何才能正确执行此操作?

要插入的值中有一个输入错误

当前代码有{user:user,:password:passwordHash,email:email},而它应该是{user:user,passwordHash,email:email}删除:在密码之前

> sqlalchemy.exc.StatementError: (sqlalchemy.exc.InvalidRequestError) A
> value is required for bind parameter 'password' 

>[SQL: INSERT INTO
> users (name, password, email) VALUES(%(user)s, %(password)s,
> %(email)s)] [parameters: [{'user': 'Kieron', ':password':
> 'pbkdf2:sha256:150000$aQfm996V$af032bc39170c1e2b59cab53691ebb48e50d3824b851de6921c56f07f4a10d3c',
> 'email': 'kieron@example.com'}]]