gpt4 book ai didi

python - 如何将django 与mongoengine 一起使用?

转载 作者:可可西里 更新时间:2023-11-01 09:29:56 25 4
gpt4 key购买 nike

我想将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com