作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想将 mongodb 数据库与 django 框架一起使用。为此,我尝试使用 mongoengine 和以下描述建立一个小型测试项目:http://staltz.com/djangoconfi-mongoengine/#/8
不幸的是,它不起作用。我的 settings.py、views.py 和 models.py 的相关部分如下所示:
设置.py:
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
import mongoengine
[...]
# Application definition
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'testApp',
)
[...]
# Database
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': '',
}
}
SESSION_ENGINE = 'mongoengine.django.sessions'
_MONGODB_USER = 'mongouser'
_MONGODB_PASSWD = 'test'
_MONGODB_HOST = 'localhost'
_MONGODB_NAME = 'testDb'
_MONGODB_DATABASE_HOST = \
'mongodb://%s:%s@%s/%s' \
% (_MONGODB_USER, _MONGODB_PASSWD, _MONGODB_HOST, _MONGODB_NAME)
mongoengine.connect(_MONGODB_NAME, host=_MONGODB_DATABASE_HOST)
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
模型.py
from mongoengine import *
# Create your models here.
class Choice(Document):
choice_text = StringField(max_length=200)
View .py
from django.shortcuts import render
from django.http import HttpResponse
from testApp.models import Choice
from django.contrib.auth import authenticate
def index(request):
newChoice = Choice(choice_text="First test")
newChoice.save()
return HttpResponse("Test")
user = authenticate(username='mongouser', password='test')
assert isinstance(user, mongoengine.django.auth.User)
当我启动测试服务器并打开 testApp 网站时,我收到“ImportError:没有名为 django.sessions 的模块”。因此,我从我的 settings.py 中删除了 SESSION_ENGINE 部分,它在上面的描述中被标记为可选。之后我收到“没有名为 django.auth 的模块”错误。
您是否知道出了什么问题以及如何将 django 与 mongoengine 一起设置以使用 mongodb 数据库?
最佳答案
这是回答here .使用 mongoengine 0.10 我们可以看到/usr/lib/python2.7/site-packages/mongoengine/中没有 django 包。使用 sudo pip install mongoengine==0.9 安装 mongoengine 0.9,django 包(支持或扩展)将可用。
关于python - 如何将django 与mongoengine 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31990018/
我是一名优秀的程序员,十分优秀!