刚开始学django,创建的第一个工程无法启动,后来发现是由于教程是针对较低版本的Django,我用的是Django2.0和Python3.6,两个都是发文为止的最新版本,urls文件设置方法和旧版本不一致,按照之前的版本设置,报错信息为TypeError: view must be a callable or a list/tuple in the case of include().。
默认的urls文件配置:
from django.conf.urls import url
urlpatterns = [
path('admin/', admin.site.urls),
]
需要修改的地方如下:
1.将path改成url,之前一直以为报错是需要导入path的包,导入了几次也不运行,后来发现要把path改成url
from django.conf.urls import url
urlpatterns = [
url('admin/', admin.site.urls),
]
2.加上自己定义的url地址,我的应用名称是blog,也就是用startapp命令创建的文件夹叫做blog,之前版本的写法是url(r'^blog/index/$', 'bolg.views.index'),2.0版本中views的用法发生了变化,不用括起来,直接使用views.index,其中index是我在views.py文件中定义的访问函数,直接替换成你自己定义的函数即可。
from django.conf.urls import url
urlpatterns = [
url('admin/', admin.site.urls),
url(r'^blog/index/$',views.index),
]
3.改完以上2步还是无法运行,为啥?因为用到了admin和views的包没有导入,所以需要导入这2个包,完整的写法如下:
from django.conf.urls import url
from django.contrib import admin
from blog import views
urlpatterns = [
url('admin/', admin.site.urls),
url(r'^blog/index/$',views.index),
]
以上,即可启动blog这个应用了。
转载'http://blog.sina.com.cn/s/blog_912624100102xci9.html