环境:python3.6+django2.2.1
在使用include时报错如下:
Watching for file changes with StatReloader
Performing system checks...
Exception in thread django-main-thread:
Traceback (most recent call last):
File "D:\Python\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "D:\Python\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "D:\Python\lib\site-packages\django\utils\autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "D:\Python\lib\site-packages\django\core\management\commands\runserver.py", line 117, in inner_run
self.check(display_num_errors=True)
File "D:\Python\lib\site-packages\django\core\management\base.py", line 390, in check
include_deployment_checks=include_deployment_checks,
File "D:\Python\lib\site-packages\django\core\management\base.py", line 377, in _run_checks
return checks.run_checks(**kwargs)
File "D:\Python\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks
new_errors = check(app_configs=app_configs)
File "D:\Python\lib\site-packages\django\core\checks\urls.py", line 40, in check_url_namespaces_unique
all_namespaces = _load_all_namespaces(resolver)
File "D:\Python\lib\site-packages\django\core\checks\urls.py", line 57, in _load_all_namespaces
url_patterns = getattr(resolver, 'url_patterns', [])
File "D:\Python\lib\site-packages\django\utils\functional.py", line 80, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "D:\Python\lib\site-packages\django\urls\resolvers.py", line 579, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "D:\Python\lib\site-packages\django\utils\functional.py", line 80, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "D:\Python\lib\site-packages\django\urls\resolvers.py", line 572, in urlconf_module
return import_module(self.urlconf_name)
File "D:\Python\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 677, in _load_unlocked
File "", line 728, in exec_module
File "", line 219, in _call_with_frames_removed
File "E:\yuanma\django\myblog\myblog\urls.py", line 21, in
path('index/', include('blog.urls'))
File "D:\Python\lib\site-packages\django\urls\conf.py", line 34, in include
urlconf_module = import_module(urlconf_module)
File "D:\Python\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 677, in _load_unlocked
File "", line 728, in exec_module
File "", line 219, in _call_with_frames_removed
File "E:\yuanma\django\myblog\blog\urls.py", line 1, in
from django.conf.urls import path
ImportError: cannot import name 'path' from 'django.conf.urls' (D:\Python\lib\site-packages\django\conf\urls\__init__.py)
from django.conf.urls import path
ImportError: cannot import name 'path' from 'django.conf.urls' (D:\Python\lib\site-packages\django\conf\urls\__init__.py)
原因是在app目录下的urls.py文件,导入的不是path,而应该是url
修改如下
项目根目录下的urls.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', include('blog.urls'))
]
app应用目录下的urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url('^$', views.index),
]
^$ 是为了约束空字符,不加约束的话,在该url后面加上任意字符都可以访问index主页。如(http://127.0.0.1:8000/index/abcd)