Pymongo在身份验证期间引发不同的异常

2024-06-16 09:46:56 发布

您现在位置:Python中文网/ 问答频道 /正文

import pymongo
import sys

MONGO_USER = "ID"
MONGO_PASS = "Password"

def user_input():

    MONGO_HOST = 'mongodb://000.000.000.000'                    # server address
    MONGO_DB   = 'databse'                                       # database of interest in the server
    connection = pymongo.MongoClient(MONGO_HOST)                # connects to the remote database server
    db = connection[MONGO_DB]                                   # specifies the database we want to use

    try:
        log_in = db.authenticate(MONGO_USER, MONGO_PASS)
    except:
        log_in = False                                          # returns False if authentication fails

    finally:
        return log_in,db

因此,我想针对不同类型的身份验证错误提出不同的异常。我想引发一个异常,其中指定的服务器没有打开,以及一个用户输入错误的ID或密码的异常。所以,像这样:

^{pr2}$

我应该为每个案例使用什么代码?我需要专门为Pymongo工作的代码。我看过Pymongo的文件说

except pymongo.errors.InvalidName:
    do something

但没用。在

以下是我发现的文档: http://api.mongodb.com/python/current/api/pymongo/errors.html

我已经尝试过那个doc中的InvalidName:exception,但是当我尝试输入错误的ID时,它并没有转到那个异常处理程序。所以,当我使用:

MONGO_USER = "wrong_ID"
....
except pymongo.errors.InvalidName:
    print("incorrect ID")

它应该转到InvalidName:exception处理程序,并打印“不正确的ID”,但它没有


Tags: theinimportlogiddbservermongo