我在关注指南时构建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'),
]