为什么python代码无法到达else语句?

时间:2019-05-24 11:22:52

标签: python-3.x mongodb

程序在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的进程结束

1 个答案:

答案 0 :(得分:1)

如果cursor的值为None,则您的for循环将不会启动。

for i in cursor:
...

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

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