sqlalchemy.exc.ArgumentError:此 text() 构造未定义名为 'current_time' 的绑定参数



我有以下函数来使用sqlalchemy和databases包检查表reset_codes中的重置令牌(https://pypi.org/project/databases/)

def check_reset_token(reset_token: str):
query = "SELECT * FROM reset_codes WHERE is_active=True AND reset_code=:reset_token " 
"AND expired_in >= :current_time - INTERVAL '60 minutes'"
return database.fetch_one(query, values={"reset_token": reset_token, "current_time": datetime.utcnow()})

我得到以下错误,不确定如何修复

sqlalchemy.exc.ArgumentError: This text() construct doesn't define a bound parameter named 'current_time'

以下是日期时间的expired_in列的值

|         exired_in             |
| ----------------------------- |
| 2021-06-12 19:19:53.007063    |

所以不确定这是否是:current_time - INTERVAL '60 minutes'的问题所在

已修复,是一个拼写错误!

def check_reset_token(reset_token: str):
query = "SELECT * FROM reset_codes WHERE is_active=True AND reset_code=:reset_token AND expired_in >= :current_time - INTERVAL '60 minutes'"
return database.fetch_one(query, values={"reset_token": reset_token, "current_time": datetime.utcnow()})

sql查询有" ",转到第2行…疯狂地错过了它,花了几个小时试图找出

相关内容

最新更新