PyMongo和Django

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

我创build了一个应用程序“testing应用程序”模型“书籍”和一个CRUD视图似乎工作正常(所有书籍保存和检索)。

但是,由于某种原因,我似乎无法在MySQL数据库和MongoDB中find书籍。 我不确定模型正在使用哪个数据库。

还有Redis的设置,但即使在重新启动服务器后,模型条目也在那里,所以我猜它不在caching中。

我的设置是:

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文档使用不同的连接对象插入来自多个数据库的检索数据。

正如你所提到的DATABASES是MySQL它将默认为你创build或删除的任何东西

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