【问题标题】:Deployment of Django application using MongoDB on AWS在 AWS 上使用 MongoDB 部署 Django 应用程序
【发布时间】:2015-11-20 12:48:58
【问题描述】:

如何定义 django 应用程序的设置以使用与 django 项目在同一实例上运行的 mongodb 服务器。我在 django 应用程序的设置中使用127.0.0.1、port 27017(我假设这是运行 mongodb 服务器的默认端口)尝试了它。然后我用 aws 实例的 IP 地址尝试了它,但没有运气。它总是给我这个错误:

ConnectionError: You have not defined a default connection

我的 django 项目有以下 mongo 设置。

MONGO_SETTINGS = {
    'DB_NAME' : 'spotmentor',
    'HOST' : '127.0.0.1',
    'PORT' : 27017,
    'USERNAME' : '',
    'PASSWORD' : ''
}

然后我使用mongoengine connect建立连接。

我将上述MONGO_SETTINGS 导入为mongoset 和

from mongoengine import connect

connect(mongoset.get('DB_NAME'), host = mongoset.get('HOST'), port = mongoset.get('PORT'), username = mongoset.get('USERNAME'), password = mongoset.get('PASSWORD'))

我将 HOST 键的值更改为 aws 实例公共 IP,但我仍然得到相同的 ConnectionError。

我也定义了:

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.dummy',
        }
    }

我该如何解决这个问题?

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。
  • 它会给你这个错误,因为你没有定义 DATABASES 设置。您需要阅读 django 文档。
  • 我已经定义了DATABASES = { 'default': { 'ENGINE': 'django.db.backends.dummy', } }
  • 但我认为 mongoengine 不会寻找 DATABASES 设置键。 Mongoengine 不使用该密钥连接到数据库。如果我跳过那部分,我可以直接使用mongoengine.connect,它仍然对我有用。

标签: django mongodb amazon-web-services


【解决方案1】:

mongoengine 不需要任何额外的设置来连接到 mongodb。您提供的设置必须足够。

我建议你重新检查你的mongodb安装。

试试sudo apt-get remove mongodb 和sudo apt-get install mongodb

这应该可以解决您的问题。

此外,如果您不使用 sql-databases,则无需定义虚拟数据库后端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-12
    • 2014-11-20
    • 2023-04-09
    • 2017-08-16
    • 1970-01-01
    • 2014-05-25
    • 2016-12-25
    • 2013-12-19
    相关资源
    最近更新 更多