没有名为django.conf.urls.defaults的模块



我在关注指南时构建Django应用程序遇到一些麻烦:https://code.djangoproject.com/wiki/wiki/searchengine

硬件/软件:

Django版本2.1.4Python版本3.7Windows 10联想瑜伽720

输入以下代码时:

from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^/?$', 'google.searchengine.views.search'),
)

进入urls.py,命令行返回:

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x03D341E0>
Traceback (most recent call last):
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangoutilsautoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangocoremanagementcommandsrunserver.py", line 117, in inner_run
    self.check(display_num_errors=True)
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangocoremanagementbase.py", line 379, in check
    include_deployment_checks=include_deployment_checks,
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangocoremanagementbase.py", line 366, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangocorechecksregistry.py", line 71, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangocorechecksurls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangocorechecksurls.py", line 23, in check_resolver
    return check_method()
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangourlsresolvers.py", line 396, in check
    for pattern in self.url_patterns:
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangoutilsfunctional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangourlsresolvers.py", line 533, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangoutilsfunctional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libsite-packagesdjangourlsresolvers.py", line 526, in urlconf_module
    return import_module(self.urlconf_name)
  File "C:UsersKonjoAppDataLocalProgramsPythonPython37-32libimportlib__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:UsersKonjokonjo_searchkonjo_searchurls.py", line 23, in <module>
    from django.conf.urls.defaults import *
ModuleNotFoundError: No module named 'django.conf.urls.defaults'

在多个回合的故障排除,搜索和测试中,看起来某些模块丢失了,或者在Django的较新版本中更改了。对此事的任何帮助将不胜感激。

Update

已降级至Python 2.7.10和Django 1.11.17。

文件结构的视图:文件结构

新错误:

Unhandled exception in thread started by <function wrapper at 0x0000000004060CF8>
Traceback (most recent call last):
  File "C:Python27libsite-packagesdjangoutilsautoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "C:Python27libsite-packagesdjangocoremanagementcommandsrunserver.py", line 124, in inner_run
    self.check(display_num_errors=True)
  File "C:Python27libsite-packagesdjangocoremanagementbase.py", line 359, in check
    include_deployment_checks=include_deployment_checks,
  File "C:Python27libsite-packagesdjangocoremanagementbase.py", line 346, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:Python27libsite-packagesdjangocorechecksregistry.py", line 81, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:Python27libsite-packagesdjangocorechecksurls.py", line 16, in check_url_config
    return check_resolver(resolver)
  File "C:Python27libsite-packagesdjangocorechecksurls.py", line 26, in check_resolver
    return check_method()
  File "C:Python27libsite-packagesdjangourlsresolvers.py", line 256, in check
    for pattern in self.url_patterns:
  File "C:Python27libsite-packagesdjangoutilsfunctional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:Python27libsite-packagesdjangourlsresolvers.py", line 407, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:Python27libsite-packagesdjangoutilsfunctional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:Python27libsite-packagesdjangourlsresolvers.py", line 400, in urlconf_module
    return import_module(self.urlconf_name)
  File "C:Python27libimportlib__init__.py", line 37, in import_module
    __import__(name)
  File "C:UsersKonjogooglegoogleurls.py", line 1, in <module>
    from django.conf.urls.defaults import *
ImportError: No module named defaults

-konjo

从django删除模块from django.conf.urls.defaults import *

您可以做:

from django.urls import path
urlpatterns = path('',
    (r'^/?$', google.searchengine.views.search),
)

django.conf.urls.defaults已在django中删除。如果问题是在您自己的代码中,您将通过将导入更改为

来解决该问题。
from django.urls import include, path

urlpatterns = path('', 'google.searchengine.views.search'),

尝试:

from google.searchengine.views import search
from django.urls import path
urlpatterns = [
    path('', search)
]

编辑:如果您遵循指南,我认为实际上是:

from searchengine.views import search
from django.urls import path
urlpatterns = [
    path('', search)
]

自Django 2.0

以来,django url调度程序已更改
from django.urls import path
from . import views
urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    path('articles/<int:year>/', views.year_archive),
    path('articles/<int:year>/<int:month>/', views.month_archive),
    path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail),
]

编辑...在您的情况下:

from django.urls import path
urlpatterns = [
    path('/', google.searchengine.views.search),
]

但是您需要导入相应的视图,因为没有 google.searchengine.views.searchs.search 在您的urls.py

中导入

https://docs.djangoproject.com/en/2.1/topics/http/urls/

我想您有一个名为Google and App的项目,称为SearchEngine(根据教程)这样做,

from django.urls import path
from . import views
urlpatterns = [
    path('', views.search, name='search'),
]

最新更新