示例代码:
映射URL
打开项目主文件夹learning_log中的文件urls.py,我们需要包含learning_logs的URL:
from django.conf.urls import include, url from django.contrib import admin
urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'', include('learning_logs.urls', namespace='learning_logs')), ]
练习中 django版本:3.0.3
实验中urls.py:
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), path('',learning_logs.urls), ]
报错:
File "D:\python_work\learning_log\learning_log\urls.py", line 22, in <module> path('',learning_logs.urls), NameError: name 'learning_logs' is not defined
解决办法:
path('',’learning_logs.urls‘),
继续报错:
File "D:\python_work\learning_log\learning_log\urls.py", line 22, in <module> path('','learning_logs.urls'), File "D:\python_work\learning_log\ll_env\lib\site-packages\django\urls\conf.py", line 73, in _path raise TypeError('view must be a callable or a list/tuple in the case of include().') TypeError: view must be a callable or a list/tuple in the case of include().
查看path用法之一:
urls.py:13: 1. Import the include() function: from django.urls import include, path
urls.py:14: 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
解决办法:
from django.contrib import admin from django.urls import include,path urlpatterns = [ path('admin/', admin.site.urls), #path('',include('learning_logs.urls',namespace='learning_logs')), path('',include('learning_logs.urls')), ]
如果使用
namespace='learning_logs'
需要在应用文件夹learning_logs的urls.py中添加:
app_name = 'learning_logs'