python-3.x - 为什么python代码不能到达else语句?
问题描述
该程序在 mongodb 中搜索用户名和密码。如果我尝试使用正确的凭据,则代码将出现在 if 语句中。如果我尝试使用错误的凭据登录,则代码不会到达 else 语句。
我用 elif 语句尝试过:如果用户名和密码不在 i.values()
<pre><code class="python"># python code
from pymongo import MongoClient
import pymongo
import pprint
client = MongoClient('192.168.37.128:27017')
db = client.medewerkerdb
collection = db.medewerkerdb
username = input("Username: ")
password = input("Password: ")
cursor = db.medewerkerdb.find({'username': username,'password':password})
for i in cursor:
if username and password in i.values():
print("<h2>Welcome %s </h2>" % (username))`enter code here`
else:
print("Bad Password")
print("2")
print(i)
</code></pre>
程序以退出代码 0 结束的进程关闭
解决方案
如果cursor
有一个值,None
您的for
循环将不会启动。
for i in cursor:
...
编辑:也如评论中所述,您必须分别检查用户名和密码
if username in i.values() and password in i.values():
...
推荐阅读
- arrays - 在 Swift 4.2 中构建 CSV-String 的灵活代码
- django - 身份验证问题,Django
- javascript - Axios GET - 发送对象值而不是实际对象
- unity3d - 使力 Vector3 适应方向 Vector3
- javascript - 从用户那里获取多个输入
- excel - 如何使来自 2 个模板的列正确移动?
- ios - 无法在 Xcode 项目中初始化 pod
- android - Android .aab 无法生成
- android - NativeScript 模态在 ios 上全屏显示
- c# - 使用 C# Excel Interop 从 Excel 工作簿中删除查询