python - 使用 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 ......任何帮助都非常受欢迎!
解决方案
对象可能看起来是相等的,但这不是 python 出错的类型。你做了正确的事情来打印这两个值,但是有不止一种方法可以做到这一点。在 pythonstr
中,对象认为是它最好的人类可读形式。repr
产生对象认为是其最佳编程名称的东西。例如,对于字符串,这包括引号,可以更容易地发现意外字符。in f 字符串为您提供了这种!r
表示
f"{test} - password: {password!r} - sql_pass: {sql_pass!r}"
推荐阅读
- python - Altair - 在 x = y 的绘图中画一条线
- python - 从 python 脚本执行命令行程序(Abaqus-python 脚本)
- r - 使用 R 中的 ggplot2 按顺序循环打印大量图形 (PDF)
- entity-framework - System.TypeInitializationException 发生
- sqlite - 连接多个表 Sqlite Flutter
- html - 在控制台中找不到 JS 文件
- php - 登录后PHP重定向到另一个页面
- java - 如何在没有命令行工具的情况下配置 AWS Amplify?
- javascript - 带有 Django/React 的 Axios 补丁:带有非表单的表单数据,不会更新数据库,邮递员工作正常
- finance - alphavantage API 不适用于加拿大 ETF 和股票 (TSX)