【问题标题】:How to wrure REST API using django mongoengin rest framework如何使用 django mongoengine REST 框架编写 REST API
【发布时间】:2015-07-09 20:00:44
【问题描述】:

我在尝试访问我的 API 时遇到导入错误。谁能帮我解决这个错误。我正在将 mongoengine 与 django 一起使用 我的代码。 我的代码快照 模型.py

from django.db import models

# Create your models here.
from djangotoolbox.fields import ListField
class Post(models.Model):
    title = models.CharField(max_length=100)
    text = models.TextField()
    tags = ListField()
    comments = ListField()

serializer.py

from rest_framework_mongoengine.serializers import DocumentSerializer
from models import Post
class PostSerializer(DocumentSerializer):
    class Meta:
        model = Post
from rest_framework_mongoengine.generics import ListCreateAPIView
class PostList(ListCreateAPIView):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

urls.py

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite.views.home', name='home'),
    #url(r'^blog/', include('blog.urls')),
    url(r'^blog/$', views.BlogList.as_view()),
    url(r'^admin/', include(admin.site.urls)),
)

settings.py

"""
Django settings for mysite project.

For more information on this file, see
https://docs.djangoproject.com/en/1.6/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.6/ref/settings/
"""

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '#9c**o=!!%ge=7_fqb*42t$=d5w(s514&#bv-n!41m&&54eh2!'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

TEMPLATE_DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework_mongoengine',
    'blog',
)

MIDDLEWARE_CLASSES = (
    '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 = 'mysite.urls'

WSGI_APPLICATION = 'mysite.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django_mongodb_engine',
        'NAME': 'mysite_db',
    }
}

# Internationalization
# https://docs.djangoproject.com/en/1.6/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_URL = '/static/'

导入错误

Environment:


Request Method: GET
Request URL: http://localhost:8000/

Django Version: 1.6.11
Python Version: 2.7.6
Installed Applications:
('django_mongodb_engine',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rest_framework_mongoengine',
 'blog')
Installed Middleware:
('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')


Traceback:
File "/home/ashish/mongo_django/demo/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  99.                 resolver_match = resolver.resolve(request.path_info)
File "/home/ashish/mongo_django/demo/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
  337.             for pattern in self.url_patterns:
File "/home/ashish/mongo_django/demo/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
  365.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/home/ashish/mongo_django/demo/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
  360.             self._urlconf_module = import_module(self.urlconf_name)
File "/home/ashish/mongo_django/demo/local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
  40.         __import__(name)
File "/home/ashish/mongo_django/mysite/mysite/urls.py" in <module>
  5. from blog.serilizer import PostList
File "/home/ashish/mongo_django/mysite/blog/serilizer.py" in <module>
  6. from rest_framework_mongoengine.generics import ListCreateAPIView
File "/home/ashish/mongo_django/demo/local/lib/python2.7/site-packages/rest_framework_mongoengine/generics.py" in <module>
  4. from mongoengine.django.shortcuts import get_document_or_404

Exception Type: ImportError at /
Exception Value: No module named django.shortcuts

【问题讨论】:

    标签: python django mongodb rest mongoengine


    【解决方案1】:

    Django support has been removed 来自 MongoEngine 0.10.0 (release notes)。这意味着它不适用于rest_framework_mongoengine

    您可以尝试安装 MongoEngine 0.9.0。

    【讨论】:

      猜你喜欢
      • 2020-05-15
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 2019-11-27
      • 2018-04-27
      相关资源
      最近更新 更多