无法使用Flask mongoalchemy连接到mongodb atlas群集

无法使用Flask mongoalchemy连接到mongodb atlas群集,flask,mongoalchemy,Flask,Mongoalchemy,我使用下面的stackoverflow问题链接尝试使用Flask MongoAlchemy连接到MongoDb atlas集群,但这似乎不起作用。下面是我的代码:> from flask import Flask from flask_mongoalchemy import MongoAlchemy app = Flask(__name__) DB_URI = 'mongodb+srv://subhayan:<password>@mflix-jprgs.mongodb.net/te

我使用下面的stackoverflow问题链接尝试使用Flask MongoAlchemy连接到MongoDb atlas集群,但这似乎不起作用。下面是我的代码:>

from flask import Flask
from flask_mongoalchemy import MongoAlchemy

app = Flask(__name__)
DB_URI = 'mongodb+srv://subhayan:<password>@mflix-jprgs.mongodb.net/test?retryWrites=true&w=majority'
app.config['MONGOALCHEMY_DATABASE'] = 'test'
app.config["MONGODB_HOST"] = DB_URI


db = MongoAlchemy(app)

class Person(db.document):
    first_name = db.StringField()
    last_name = db.StringField()
    age = db.IntField()
从烧瓶导入烧瓶
从蒙哥马利进口蒙哥马利
app=烧瓶(名称)
DB_URI='mongodb+srv://subhayan:@mflix jprgs.mongodb.net/test?retryWrites=true&w=mailty'
app.config['MONGOALCHEMY_DATABASE']='test'
app.config[“MONGODB_主机”]=DB_URI
db=MongoAlchemy(应用程序)
班级人员(数据库文件):
first_name=db.StringField()
last_name=db.StringField()
age=db.IntField()
我已正确地将密码替换为实际密码。我尝试从REPL导入此Python文件,但出现以下错误:

(python-mongo) ~/Desktop/Studies/Codes/python-mongo:$ python
Python 3.7.3 (default, Mar 27 2019, 09:23:15) 
[Clang 10.0.1 (clang-1001.0.46.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from connect import *
Traceback (most recent call last):
  File "/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site-packages/pymongo/mongo_client.py", line 375, in __init__
    self._ensure_connected(True)
  File "/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site-packages/pymongo/mongo_client.py", line 940, in _ensure_connected
    self.__ensure_member()
  File "/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site-packages/pymongo/mongo_client.py", line 814, in __ensure_member
    member, nodes = self.__find_node()
  File "/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site-packages/pymongo/mongo_client.py", line 905, in __find_node
    raise AutoReconnect(', '.join(errors))
pymongo.errors.AutoReconnect: [Errno 61] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/subhayanbhattacharya/Desktop/Studies/Codes/python-mongo/connect.py", line 10, in <module>
    db = MongoAlchemy(app)
  File "/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site-packages/flask_mongoalchemy/__init__.py", line 101, in __init__
    self.init_app(app, config_prefix)
  File "/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site-packages/flask_mongoalchemy/__init__.py", line 123, in init_app
    host=uri, replicaSet=rs)
  File "/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site-packages/mongoalchemy/session.py", line 126, in connect
    conn = MongoClient(*args, **kwds)
  File "/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site-packages/pymongo/mongo_client.py", line 378, in __init__
    raise ConnectionFailure(str(e))
pymongo.errors.ConnectionFailure: [Errno 61] Connection refused
(pythonmongo)~/Desktop/Studies/Codes/pythonmongo:$python
Python 3.7.3(默认值,2019年3月27日09:23:15)
关于达尔文的[Clang 10.0.1(Clang-1001.0.46.3)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>从连接导入*
回溯(最近一次呼叫最后一次):
文件“/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site packages/pymongo/mongo_client.py”,第375行,在__
自我确保连接(正确)
文件“/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site packages/pymongo/mongo_client.py”,第940行,在“确保已连接”
自我确保成员()
文件“/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site packages/pymongo/mongo_client.py”,第814行,位于
成员,节点=self.\u查找\u节点()
文件“/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site packages/pymongo/mongo_client.py”,第905行,在查找节点中
引发自动重新连接(“,”.join(错误))
pymongo.errors.AutoReconnect:[Errno 61]连接被拒绝
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Users/subhayanbhattacharya/Desktop/Studies/Codes/python mongo/connect.py”,第10行,在
db=MongoAlchemy(应用程序)
文件“/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site packages/flask\u mongoalchemy/\u______.py”,第101行,在____init中__
self.init_app(app,config_前缀)
文件“/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site packages/flask_mongoalchemy/_______.py”,第123行,在init_应用程序中
主机=uri,复制集=rs)
文件“/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site packages/mongoalchemy/session.py”,第126行,在connect中
conn=MongoClient(*args,**kwds)
文件“/Users/subhayanbhattacharya/.local/share/virtualenvs/python-mongo-adwM96Vd/lib/python3.7/site packages/pymongo/mongo_client.py”,第378行,在__
提升连接故障(str(e))
pymongo.errors.ConnectionFailure:[Errno 61]连接被拒绝

有人能帮我理解问题是什么吗。我也没有找到合适的文档。

您的密码可能有转义字符

这样试试看

import urllib.parse

username = urllib.parse.quote_plus("UserName")
password = urllib.parse.quote_plus("Password")

client = MongoClient('mongodb+srv://%s:%s@mflix-jprgs.mongodb.net/test?retryWrites=true&w=majority' % (username, password))