如何将 Django ORM 连接到 mongo 图集?
How to connect Django ORM to mongo atlas?
我正在尝试使用 Django 将我的 Django 实例连接到 mongo 数据库集群。我已经从各种来源进行了检查,它越来越接近工作的方式是:
- 安装 dnspython
- 在
settings.py
中有以下 DATABASES
字典
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'test',
'HOST': 'mongodb+srv://mongo_usr:' + urllib.parse.quote('mypassword') + '@domain_assigned.mongodb.net/test?ssl=true&ssl_cert_reqs=CERT_NONE&retryWrites=true',
'ENFORCE_SCHEMA': False
}
}
它确实找到了端点,但我收到一个奇怪的错误:
pymongo.errors.ServerSelectionTimeoutError: connection closed,connection closed,connection closed
以前有人解决过这个问题吗?
我刚刚使用以下设置 Djongo 和 MongoDB Atlas:
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': '<db name>',
'HOST': 'mongodb+srv://<db username>:<db password>@....mongodb.net/test?retryWrites=true',
'USER': '<db username>',
'PASSWORD': '<db password>',
}
}
希望对您有所帮助!
我已经通过使用来自@Market Ahead
的片段成功地连接到 mongo 带有 djongo 的 atlas
看来他们不希望密码里面有奇怪的字符。在这种情况下,即使转义也无法发挥最佳作用。
安装 djongo 包使用
pip install djongo
.
确保导入以下模块:
import urllib
设置数据库设置。
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': '<db_name>',
'HOST': "mongodb+srv://<db_username>:" +
urllib.parse.quote_plus("<db_password>") +
"@........mongodb.net/test?retryWrites=true&ssl=true&ssl_cert_reqs=CERT_NONE&w=majority",
}
}
用您的凭据替换 db_username、db_name 和 db_password。
同时编辑 Mongo Atlas 给出的主机名。
在没有任何破解的情况下完成了如下工作:
- 安装
pip install dnspython
.
- 使用以下内容更新 settings.py,
'default': {
'ENGINE': 'djongo',
'NAME': '<dbname>',
'CLIENT': {
'host': "mongodb+srv://<username>:" + quote_plus('<password>') + "@<cluster-name>.mongodb.net/test?retryWrites=true&w=majority"
},
}
- 运行
python manage.py makemigrations
- 运行
python manage.py migrate
最简单正确的解决方案:
第 1 步:安装 djongo 和 dnspython
pip install djongo
pip install dnspython
第 2 步:settings.py 中的变化:
DATABASES = {
"default": {
"ENGINE": "djongo",
"CLIENT": {
"host": "mongodb+srv://<username>:<password>@<cluster_name>.mongodb.net/?retryWrites=true&w=majority",
"username": "<username>",
"password": "<password>",
"name": "<database_name>",
"authMechanism": "SCRAM-SHA-1",
},
}}
编辑您的数据库 settings.py 后,转到您的环境库并在 pymongo/mongo_client.py
中进行这些更改
HOST = "mongodb+srv://<Username>:<password>@cluster0-gbdot.mongodb.net/<databaseName>?retryWrites=true&w=majority"
我正在尝试使用 Django 将我的 Django 实例连接到 mongo 数据库集群。我已经从各种来源进行了检查,它越来越接近工作的方式是:
- 安装 dnspython
- 在
settings.py
中有以下
DATABASES
字典
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'test',
'HOST': 'mongodb+srv://mongo_usr:' + urllib.parse.quote('mypassword') + '@domain_assigned.mongodb.net/test?ssl=true&ssl_cert_reqs=CERT_NONE&retryWrites=true',
'ENFORCE_SCHEMA': False
}
}
它确实找到了端点,但我收到一个奇怪的错误:
pymongo.errors.ServerSelectionTimeoutError: connection closed,connection closed,connection closed
以前有人解决过这个问题吗?
我刚刚使用以下设置 Djongo 和 MongoDB Atlas:
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': '<db name>',
'HOST': 'mongodb+srv://<db username>:<db password>@....mongodb.net/test?retryWrites=true',
'USER': '<db username>',
'PASSWORD': '<db password>',
}
}
希望对您有所帮助!
我已经通过使用来自@Market Ahead
看来他们不希望密码里面有奇怪的字符。在这种情况下,即使转义也无法发挥最佳作用。
安装 djongo 包使用
pip install djongo
.
确保导入以下模块:
import urllib
设置数据库设置。
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': '<db_name>',
'HOST': "mongodb+srv://<db_username>:" +
urllib.parse.quote_plus("<db_password>") +
"@........mongodb.net/test?retryWrites=true&ssl=true&ssl_cert_reqs=CERT_NONE&w=majority",
}
}
用您的凭据替换 db_username、db_name 和 db_password。
同时编辑 Mongo Atlas 给出的主机名。
在没有任何破解的情况下完成了如下工作:
- 安装
pip install dnspython
. - 使用以下内容更新 settings.py,
'default': {
'ENGINE': 'djongo',
'NAME': '<dbname>',
'CLIENT': {
'host': "mongodb+srv://<username>:" + quote_plus('<password>') + "@<cluster-name>.mongodb.net/test?retryWrites=true&w=majority"
},
}
- 运行
python manage.py makemigrations
- 运行
python manage.py migrate
最简单正确的解决方案:
第 1 步:安装 djongo 和 dnspython
pip install djongo
pip install dnspython
第 2 步:settings.py 中的变化:
DATABASES = {
"default": {
"ENGINE": "djongo",
"CLIENT": {
"host": "mongodb+srv://<username>:<password>@<cluster_name>.mongodb.net/?retryWrites=true&w=majority",
"username": "<username>",
"password": "<password>",
"name": "<database_name>",
"authMechanism": "SCRAM-SHA-1",
},
}}
编辑您的数据库 settings.py 后,转到您的环境库并在 pymongo/mongo_client.py
中进行这些更改HOST = "mongodb+srv://<Username>:<password>@cluster0-gbdot.mongodb.net/<databaseName>?retryWrites=true&w=majority"