【发布时间】:2017-09-01 11:32:10
【问题描述】:
我刚开始做一个项目, 我用的是Django1.10,我想用mongoDB作为后端...
我尝试了所有可能的方法,django-mongo-engine 需要 django-nonrel1.5,
但是如果我使用它,那么我必须做很多工作,而且它很复杂......
我也试过django-mongoengine,但它只在django1.9上测试过,(django 1.9不支持admin)
所以现在我决定使用pymongo...
我需要帮助如何配置数据库?和如何在没有 ORM 的情况下使用 django?
编辑:
这是我的 setting.py 文件 django-mongoengine
settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = '------------'
DEBUG = True
ALLOWED_HOSTS = []
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mongoengine',
'LocalTeamsApp'
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'LocalTeams.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'LocalTeams.wsgi.application'
# MongoDB settings
MONGODB_DATABASES = {
'default': {'name': 'django_mongoengine'}
}
DATABASES = {
"default": {
"NAME": '****',
"PASSWORD": '****',
"USER": '****',
'ENGINE':'django.db.backends.dummy'
}
}
INSTALLED_APPS += ["django_mongoengine"]
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
AUTH_USER_MODEL = 'mongo_auth.MongoUser'
AUTHENTICATION_BACKENDS = (
'django_mongoengine.mongo_auth.backends.MongoEngineBackend',
)
SESSION_ENGINE = 'django_mongoengine.sessions'
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
然后我解雇了 cmnd
python manage.py runserver
我收到以下错误:-
Unhandled exception in thread started by <function wrapper at 0x7f8648b43ed8>
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 113, in inner_run
autoreload.raise_last_exception()
File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 249, in raise_last_exception
six.reraise(*_exception)
File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named django_mongoengine
【问题讨论】:
-
请提供您尝试过的代码示例以及您希望实现的目标。
-
请问为什么要用mongodb而不是django支持好的mysql或者postgres?
-
django-mongoengine repo 说项目不稳定。
-
@RaviKumar 这个项目需要非关系/nosql 数据库...
标签: python django mongodb pymongo