我正在研究烧瓶并执行此语句

salt=os.urandom(32)

db_session.execute('insert into posUsers values (?, ?, ?, ?)',[usern,unhex("sjg"),salt,row.clientId])


它给这个错误,未定义十六进制!

更新-现在我改为

db_session.execute('insert into posUsers (username,passwd,salt,clientId    ) values (?,UNHEX("6568"),UNHEX("haf"), ?)',[usern,row.clientId])


它给出了一个新的错误“列表”对象,没有属性“键”
有什么解决办法吗?

最佳答案

这是因为当您将其传递到python列表时,会将其视为不存在的python函数。

您需要将其包括在sql查询字符串中。

salt=os.urandom(32)

db_session.execute('insert into posUsers values (?,unhex("sjg"),?, ?)',[usern,salt,row.clientId])


unhex是mysql函数,被视为python函数,导致错误

09-30 23:13