【问题标题】:Setting up MongoDB + Django设置 MongoDB + Django
【发布时间】:2015-07-04 15:50:11
【问题描述】:

我是 Mongo DB 和 Django 的新手。我一直在尝试使用 Mongo DB 作为 Django 的主数据库。我已经按照以下链接安装了 MongoDB 和 Django-nonrel:

Django - MongoDB setup

我使用的 django-nonrel 版本是 1.7。克隆它的链接:

pip install git+https://github.com/django-nonrel/django@nonrel-1.7

完成所有步骤后,我在 django 项目文件中的 settings.py 看起来像这样:

DATABASES = {
    'default': {
        'ENGINE': 'django_mongodb_engine',
        'NAME': 'blink',
        'USER': '',
        'PASSWORD': '',
        'HOST': '127.0.0.1',
        'PORT': 1234,
    }
}

INSTALLED_APPS = (
    'djangotoolbox',
)

但是在使用以下命令运行 manage.py 时:

python manage.py runserver

我遇到这样的错误,

System check identified no issues (0 silenced).
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x104a95f80>
    Traceback (most recent call last):
      File "/Users/sunilkumar/blink/lib/python3.3/site-packages/django/utils/autoreload.py", line 222, in wrapper
        fn(*args, **kwargs)
      File "/Users/sunilkumar/blink/lib/python3.3/site-packages/django/core/management/commands/runserver.py", line 107, in inner_run
        self.check_migrations()
      File "/Users/sunilkumar/blink/lib/python3.3/site-packages/django/core/management/commands/runserver.py", line 159, in check_migrations
        executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
      File "/Users/sunilkumar/blink/lib/python3.3/site-packages/django/db/utils.py", line 242, in __getitem__
        backend = load_backend(db['ENGINE'])
      File "/Users/sunilkumar/blink/lib/python3.3/site-packages/django/db/utils.py", line 108, in load_backend
        return import_module('%s.base' % backend_name)
      File "/Users/sunilkumar/blink/lib/python3.3/importlib/__init__.py", line 90, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1584, in _gcd_import
      File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
      File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 584, in _check_name_wrapper
      File "<frozen importlib._bootstrap>", line 1022, in load_module
      File "<frozen importlib._bootstrap>", line 1003, in load_module
      File "<frozen importlib._bootstrap>", line 560, in module_for_loader_wrapper
      File "<frozen importlib._bootstrap>", line 853, in _load_module
      File "<frozen importlib._bootstrap>", line 980, in get_code
      File "<frozen importlib._bootstrap>", line 313, in _call_with_frames_removed
      File "/Users/sunilkumar/blink/lib/python3.3/site-packages/django_mongodb_engine/base.py", line 265
        raise ImproperlyConfigured, exc_info[1], exc_info[2]
                                  ^
    SyntaxError: invalid syntax

我无法理解错误是什么。有人可以帮忙吗?

【问题讨论】:

  • 您使用的是 Python 2 还是 Python 3?

标签: python django mongodb


【解决方案1】:

您似乎正在使用 Python 3。但是 django-nonrel 所依赖的 django-mongodb-engine 甚至还不支持 Python 3。

上面的语法错误实际上在py3中有效,但在py2中无效。因此错误。

也许你应该考虑在这个项目中使用 py2。

【讨论】:

  • mongo 引擎呢?是否支持 py3?
  • 这个 mongo 引擎(你上面使用的那个)依赖于 Django-nonrel。所以我认为它也不支持 py3。
【解决方案2】:

2021 年,MongoDB 支持带有 3 个引擎的 Py3 和 Django。它的 PyMongo、MongoEngine 和 Djongo。

  • PyMongo 是 MongoDB 与 Django 交互的标准驱动程序。
  • MongoEngine 类似于关系数据库中的 Object-Relational-Mapper
  • djongo 将所有 SQL 查询转换为 MongoDB 语法查询。

MongoDB Connection Examples

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-19
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 2016-07-31
相关资源
最近更新 更多