Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python djongo,无法连接到cloud.mongodb.com上的远程数据库_Python_Django_Python 3.x_Mongodb_Djongo - Fatal编程技术网

Python djongo,无法连接到cloud.mongodb.com上的远程数据库

Python djongo,无法连接到cloud.mongodb.com上的远程数据库,python,django,python-3.x,mongodb,djongo,Python,Django,Python 3.x,Mongodb,Djongo,我认为下面的设置可以让djongo连接到mongodb.com上的远程mongodb,但错误消息显示它仍在尝试连接本地主机 DATABASES = { 'default': { 'ENGINE': 'djongo', 'HOST': 'mongodb+srv://<username>:<password>@cluster-name/<dbname>?retryWrites=true&w=majority', }

我认为下面的设置可以让djongo连接到mongodb.com上的远程mongodb,但错误消息显示它仍在尝试连接本地主机

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'HOST': 'mongodb+srv://<username>:<password>@cluster-name/<dbname>?retryWrites=true&w=majority',
}

转到settings.py文件并使用下面的数据库settngs

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'ENFORCE_SCHEMA': True
        'NAME': 'your-db-name',
        'HOST': 'host-name or ip address',
        'PORT': port_number,
        'USER': 'db-username',
        'PASSWORD': 'password',
        'AUTH_SOURCE': 'db-name',
        'AUTH_MECHANISM': 'SCRAM-SHA-1',
    }
还请查看本文,了解django和MongoDB之间的连接

我个人建议你使用pycharm。在Pycharm中,您可以测试您的连接。这样你就可以更清楚地了解整个场景

我在django中使用远程数据库。你可以在下图中看到

转到settings.py文件并使用以下数据库设置

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'ENFORCE_SCHEMA': True
        'NAME': 'your-db-name',
        'HOST': 'host-name or ip address',
        'PORT': port_number,
        'USER': 'db-username',
        'PASSWORD': 'password',
        'AUTH_SOURCE': 'db-name',
        'AUTH_MECHANISM': 'SCRAM-SHA-1',
    }
还请查看本文,了解django和MongoDB之间的连接

我个人建议你使用pycharm。在Pycharm中,您可以测试您的连接。这样你就可以更清楚地了解整个场景

我在django中使用远程数据库。你可以在下图中看到 我找到了解决办法

我采用了以下方法>

因此,在幕后,djongo使用->pymongo

pymongo的默认配置是

类MongoClientcommon.BaseObject: HOST=localhost此处HOST具有硬编码值 端口=27017 哪个在下面的文件中

venv/lib/python3.6/site-packages/pymongo/mongo_client.py

将主机的harcoded值替换为

主机='mongodb+srv://:@cluster name/?retryWrites=true&w=mailty' 另外 如果需要,我们可以设置环境变量

HOST=os.getenv'MONGO\u DB\u URL' 我找到了解决办法

我采用了以下方法>

因此,在幕后,djongo使用->pymongo

pymongo的默认配置是

类MongoClientcommon.BaseObject: HOST=localhost此处HOST具有硬编码值 端口=27017 哪个在下面的文件中

venv/lib/python3.6/site-packages/pymongo/mongo_client.py

将主机的harcoded值替换为

主机='mongodb+srv://:@cluster name/?retryWrites=true&w=mailty' 另外 如果需要,我们可以设置环境变量

HOST=os.getenv'MONGO\u DB\u URL'
我以前遇到过你的问题。在我的例子中,我在容器中运行django和mongodb。我发现无论我在setting.py中设置了什么设置,djongothey在后面使用Pymango的人都忽略了我的设置

对于寻求解决方案的其他人,您可能需要检查setting.py中的语法,该语法应如下所示:

 DATABASES = {
        'default': {
            'ENGINE': 'djongo',
            'NAME': 'your-db-name',
            'ENFORCE_SCHEMA': False,
            'CLIENT': {
                'host': 'host-name or ip address',
                'port': port_number,
                'username': 'db-username',
                'password': 'password',
                'authSource': 'db-name',
                'authMechanism': 'SCRAM-SHA-1'
            },

         .......
}

您可以看到主机、用户和密码字段都位于“CLIENT”下,这与Django描述的默认语法不同。所以,也许大多数人在这里会感到困惑,并被困在这个问题上。

我以前遇到过你的问题。在我的例子中,我在容器中运行django和mongodb。我发现无论我在setting.py中设置了什么设置,djongothey在后面使用Pymango的人都忽略了我的设置

对于寻求解决方案的其他人,您可能需要检查setting.py中的语法,该语法应如下所示:

 DATABASES = {
        'default': {
            'ENGINE': 'djongo',
            'NAME': 'your-db-name',
            'ENFORCE_SCHEMA': False,
            'CLIENT': {
                'host': 'host-name or ip address',
                'port': port_number,
                'username': 'db-username',
                'password': 'password',
                'authSource': 'db-name',
                'authMechanism': 'SCRAM-SHA-1'
            },

         .......
}

您可以看到主机、用户和密码字段都位于“CLIENT”下,这与Django描述的默认语法不同。因此,也许大多数人在这里会感到困惑,并被困在这个问题上。

谢谢,我应该为数据库object中的“AUTH_SOURCE”键添加什么呢?不客气!听起来不错,你的问题已经解决了。谢谢,我应该为数据库对象中的“AUTH_SOURCE”键添加什么呢?不客气!听起来不错,你的问题已经解决了。