django RESTframework教程的问题

django RESTframework教程的问题,django,django-rest-framework,Django,Django Rest Framework,我试图熟悉django RESTFramework,因此我开始了官方教程,以创建测试API 当最终通过[CMD]“pyhon manage.py runserver”在我的Windows上启动API时,我在命令行上得到一个错误代码,您将在下面看到 我还想补充一点,不幸的是,教程中的描述存在一些模糊性,至少从初学者的角度来看是这样的,也就是说,并不总是确定教程中的相应代码是否正确 需要在模块中添加或替换模块中的全部或部分代码 因此,我尝试以各种方式实现本教程的指导,总是有相同的最终结果 我正在一

我试图熟悉django RESTFramework,因此我开始了官方教程,以创建测试API

当最终通过[CMD]“pyhon manage.py runserver”在我的Windows上启动API时,我在命令行上得到一个错误代码,您将在下面看到

我还想补充一点,不幸的是,教程中的描述存在一些模糊性,至少从初学者的角度来看是这样的,也就是说,并不总是确定教程中的相应代码是否正确 需要在模块中添加或替换模块中的全部或部分代码

因此,我尝试以各种方式实现本教程的指导,总是有相同的最终结果

我正在一个虚拟环境中运行代码,在那里我安装了Django 1.11.,所以不同的Django版本应该不会有问题

C:\Users\Rolimar\projects\djREST_tut>workon djresttut
(djresttut) C:\Users\Rolimar\projects\djREST_tut>python manage.py runserver
Performing system checks...

Unhandled exception in thread started by <function wrapper at 0x0000000004CBF978>
Traceback (most recent call last):
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\utils\autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\core\management\commands\runserver.py", line 124, in inner_run
self.check(display_num_errors=True)
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\core\management\base.py", line 359, in check
include_deployment_checks=include_deployment_checks,
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\core\management\base.py", line 346, in _run_checks
return checks.run_checks(**kwargs)
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\core\checks\registry.py", line 81, in run_checks
new_errors = check(app_configs=app_configs)
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\core\checks\urls.py", line 16, in check_url_config
return check_resolver(resolver)
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\core\checks\urls.py", line 26, in check_resolver
return check_method()
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\urls\resolvers.py", line 256, in check
for pattern in self.url_patterns:
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\urls\resolvers.py", line 407, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\utils\functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\Rolima\Envs\djresttut\lib\site-packages\django\urls\resolvers.py", line 400, in urlconf_module
return import_module(self.urlconf_name)
  File "c:\python27\Lib\importlib\__init__.py", line 37, in import_module
__import__(name)
  File "C:\Users\Rolima\projects\djREST_tut\tutorial\urls.py", line 19, in <module>
from django.urls import include, path
ImportError: cannot import name include    
“views.py”

“url.py”

在“settings.py”中,我添加了“rest\u framework”

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles'
    'rest_framework',
]
最后我还添加了以下代码:

REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}

很可能您正在使用的是django2.0。从django 2.0开始,
include
在驻留在
django.conf.urls
()之前已移动到
django.urls
。因此,您需要像这样更新
url.py

        from django.conf.urls import url, include
        from django.contrib import admin
        from rest_framework import routers
        from tutorial.quickstart import views

        router = routers.DefaultRouter()
        router.register(r'users', views.UserViewSet)
        router.register(r'groups', views.GroupViewSet)

        urlpatterns = [
            url(r'^admin/', admin.site.urls),
            url(r'^', include(router.urls)),
            url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
        ]
您不能同时使用
path
,因为它也是


或者您可以移动到django>2.0,但在这种情况下,您必须从django.conf.url导入url中删除
,并使用django.url导入url中的

谢谢!我想知道,为什么pip安装了django 1.11而不是django 2.x。。。也许,因为我用的是python2.7?
# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles'
    'rest_framework',
]
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}
        from django.conf.urls import url, include
        from django.contrib import admin
        from rest_framework import routers
        from tutorial.quickstart import views

        router = routers.DefaultRouter()
        router.register(r'users', views.UserViewSet)
        router.register(r'groups', views.GroupViewSet)

        urlpatterns = [
            url(r'^admin/', admin.site.urls),
            url(r'^', include(router.urls)),
            url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
        ]