PyMongo 和 Django

PyMongo and Django

我是 Django 的新手,我正在制作一个 Django 应用程序,我应该在其中通过 py-mongo 使用 MySQL 和 MongoDB。 (我试图只使用 py-mongo,而不是 mongoengine)

我使用模型 'Books' 和 CRUD 视图创建了一个应用程序 'test-app',它似乎工作正常(所有书籍都已保存和检索)。

但是,出于某种原因,我似乎无法在 MySQL 数据库和 MongoDB 中找到这些书籍。我不确定模型使用的是哪个数据库。

Redis 也有设置,但是即使重启服务器模型条目还在,所以我猜它不在缓存中。

我的设置是:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.10.0.1',
        'NAME': 'test_db',
        'USER': 'test_user',
        'PASSWORD': 'test_pass',
    }
}

CACHES = {
    'default': {
        'BACKEND': 'redis_cache.RedisCache',
        'LOCATION': '127.10.0.1:6379',
        'OPTIONS': {
            'DB': 0,
        },
    },
}

MONGODB = {
    'default': {
        'HOST': '127.10.0.1',
        'PORT': '27017',
        'NAME': 'django',
    }
}

还有我的requirements.txt:

Django>=1.8,<1.9
docker-compose>1.11
django-redis-cache>1.7
pymongo>=3.4
MySQL-python>=1.2

迁移文件似乎有 MongoDB 语法,而不是 SQL 语法,这让我觉得它实际上存储在 MongoDB:

class Migration(migrations.Migration):

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('number', models.IntegerField(serialize=False, primary_key=True)),
                ('author', models.CharField(max_length=200)),
            ],
        ),
    ]

您需要说明要使用哪个连接来保存数据。浏览 django 文档以使用不同的连接对象插入从多个数据库检索数据。

并且正如您提到的数据库 mysql 它将默认为您创建或删除的任何内容

Django 不会随机决定为您的模型使用 MongoDB;即使它知道如何,您只是没有在您的 DATABASES 设置中包含 Mongo 。 Django 唯一会寻找你的模型的地方是 MySQL 数据库。