我是Django的新手,我正在製作一個Django應用程序,我應該通過py-mongo使用MySQL和MongoDB。 (我試圖只使用py-mongo,而不是mongoengine)PyMongo和Django
我創建了一個應用'test-app',模型'Books'和一個CRUD視圖似乎工作正常(所有書籍都保存並檢索)。
但是,出於某種原因,我似乎無法在MySQL數據庫和MongoDB中找到Books。我不確定模型使用哪個數據庫。
還有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)),
],
),
]
好像設計得很差的系統。爲什麼SQL和NoSQL系統並行運行會造成複雜的問題?爲什麼不使用一個或另一個? FYI mysql完全能夠存儲非關係數據,例如藉助於JSON數據類型 – e4c5
這是我得到的任務。我猜想MySQL應該存儲Django安裝的應用程序(如auth等)的所有信息,以及模型的MongoDB。 – Kemeia