系统:ubuntu16.04 x64
Django:2.1
python:3.5
报错信息很长,有效的基本是下面这些:
django.core.exceptions.ImproperlyConfigured: Passing a 3-tuple to include() is not supported. Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead.
问题原因:
猜测是Django的版本问题导致的。
激活虚拟环境后可以查看Django的版本,指令为:python -m django --version
解决方法:
1.换低版本的Django,1.11版本的应该不存在这个问题,不过不推荐,因为那样一切都要重新开始!
2.修改文件内容,步骤如下。
我的项目目录如下:
首先修改learning_log的下的urls.py文件,书上的内容如下:
修改之后的代码如下:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('learning_app.urls', namespace='learning_app')),
]
接下来,更改learning_app(书上的名称叫做learning_logs)下的urls.py。
修改之后的代码如下:
"""定义learning_app的URL模式"""
from django.conf.urls import url
from . import views
urlpatterns = [
# 主页
url(r'^$', views.index, name='index'),
]
app_name = 'learning_app'
结果:
这个时候就可以运行服务器,在浏览器中输入地址就可以成功访问了!
参考网址: