首页 > 解决方案 > 为什么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 结束的进程关闭

标签: python-3.xmongodb

解决方案


如果cursor有一个值,None您的for循环将不会启动。

for i in cursor:
...

编辑:也如评论中所述,您必须分别检查用户名和密码

if username in i.values() and password in i.values():
...

推荐阅读