首页 > 解决方案 > 使用 SQLalchemy 在 Python 中 True 语句为 False ......为什么?

问题描述

我开始编码,所以这是我在社区中的第一条消息.. 在此先感谢。我相信我迟早能够合作。

我一直在尝试解决这个问题几个小时而没有成功......这个想法是使用 SQLalchemy 从 USERS 表中获取密码......我明白了,没关系,但是当我将它与相同的字符串进行比较时(输入从一个表格),我得到一个错误的..我试图将它转换为一个字符串,并将它作为一个数组的元素来获取......没有成功......有什么想法吗?多谢你们

总之,这是问题的相关代码:

password = request.form["password"]
sql_pass = db.execute("select password from users where username=:user", {"user":user}).fetchone()
sql_pass = str(sql_pass[0])
password = str(password)
if password == sql_pass:
      test="true"
else:
      test="false"
return(f"{test} - password: {password} - sql_pass: {sql_pass}")

有了这个,我们得到:

false - password: 2 - sql_pass: 2

经过大量不同的尝试后,我得到了 False ......任何帮助都非常受欢迎!

标签: pythonsql

解决方案


对象可能看起来是相等的,但这不是 python 出错的类型。你做了正确的事情来打印这两个值,但是有不止一种方法可以做到这一点。在 pythonstr中,对象认为是它最好的人类可读形式。repr产生对象认为是其最佳编程名称的东西。例如,对于字符串,这包括引号,可以更容易地发现意外字符。in f 字符串为您提供了这种!r表示

f"{test} - password: {password!r} - sql_pass: {sql_pass!r}"


推荐阅读