[英]Django - importError at /blog. (No module named urls)
在學習Django教程(這本書是使用Django進行Python Web開發)時,我遇到了導入錯誤。
我一直在這里和Google尋求解決方案,但找不到有效的解決方案。
我的錯誤是ImportError at /blog. No module named urls.
ImportError at /blog. No module named urls.
我正在使用django 1.5.1 。
我的文件結構-
- mysite
manage.py
- blog
__init__.py
models.py
tests.py
urls.py
views.py
- templates
archive.html
- mysite
__init__.py
settings.py
urls.py
wsgi.py
mysite的/博客/ urls.py
from django.conf.urls.defaults import patterns, include, url
from mysite.blog.views import archive
urlpatterns = patterns('',
url(r'^$', archive),
)
mysite的/博客/ view.py
from django.template import loader, Context
from django.http import HttpResponse
from mysite.blog.models import BlogPost
def archive(requset):
posts = BlogPost.objects.all()
t = loader.get_template("archive.html")
c = context({ 'posts': posts })
return HttpResponse(t.render(c))
mysite的/ mysite的/ urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/', include('mysite.blog.urls')),
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
)
setting.py
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
'django.contrib.admindocs',
'blog',
)
追溯
Traceback Switch to copy-and-paste view
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in get_response
resolver_match = resolver.resolve(request.path_info)
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py in resolve
for pattern in self.url_patterns:
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py in urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py in import_module
__import__(name)
...
▶ Local vars
/home/han/Django/mysite/mysite/urls.py in <module>
url(r'^blog/', include('mysite.blog.urls')),
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/conf/urls/__init__.py in include
urlconf_module = import_module(urlconf_module)
...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py in import_module
__import__(name)
...
▶ Local vars
我認為您必須更改此行:
url(r'^blog/', include('mysite.blog.urls')),
對此:
url(r'^blog/', include('blog.urls')),
希望能幫助到你!
我的解決方案在這里:
mysite的/博客/ urls.py
from mysite.blog.views import archive
至
from blog.views import archive
mysite的/博客/ view.py
from mysite.blog.models import BlogPost
至
from blog.models import BlogPost
mysite的/ mysite的/ urls.py
url(r'^blog/', include('mysite.blog.urls')),
至
url(r'^blog/', include('blog.urls')),
在這里,我建議您在settings.py中將DEBUG設置為true。 當出現錯誤時,它可以告訴您應用程序停止的位置。 在這種情況下,您只需要跳到這個地方。 最好進行調試。
從django.conf.urls.defaults將此文件mysite / blog / urls.py更改為導入模式,包括url
到django.conf.urls導入模式,包括url
我一直遇到同樣的問題,但我所做的與@Haimei相反
來自blog.views導入存檔的mysite / blog / urls.py更改為
from mysite.blog.views import archive
而且有效。
還要確保從django.conf.urls.defaults導入模式(包括,url)中刪除了.defaults
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.