我有以下函数来使用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行…疯狂地错过了它,花了几个小时试图找出