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