Django - ImportError at /blog. No module named urls
我对姜戈不熟悉,也在学习过程中。在做一些指导练习时,我遇到了一些需要帮助的错误。
错误:importerror位于/blog。没有名为url的模块
名为"blog"的应用程序下的urls.py文件是
1 2 3 4 5 6 | from django.conf.urls.defaults import patterns, include, url from mysite.blog.views import archive urlpatterns = patterns('', url(r'^$',archive), ) |
名为"blog"的应用程序下的views.py文件是
1 2 3 4 5 6 7 8 9 10 | # Create your views here. from django.template import loader, Context from django.http import HttpResponse from mysite.blog.models import Blogpost def archive(request): posts = BlogPost.objects.all() t = loader.get_template("archive.html") c = context({'posts': posts }) return HttpResponse(t.render(c)) |
号
"mysite"项目下的urls.py文件是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'mysite.views.home', name='home'), url(r'^blog/', include('mysite.blog.urls')), # Uncomment the admin/doc line below to enable admin documentation: url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), ) |
回溯:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | File"D:\Super Developer\Python\lib\site-packages\django\core\handlers\base.py" in get_response 89. response = middleware_method(request) File"D:\Super Developer\Python\lib\site-packages\django\middleware\common.py" in process_request 67. if (not urlresolvers.is_valid_path(request.path_info, urlconf) and File"D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in is_valid_path 531. resolve(path, urlconf) File"D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in resolve 420. return get_resolver(urlconf).resolve(path) File"D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in resolve 298. for pattern in self.url_patterns: File"D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in url_patterns 328. patterns = getattr(self.urlconf_module,"urlpatterns", self.urlconf_module) File"D:\Super Developer\Python\lib\site-packages\django\core\urlresolvers.py" in urlconf_module 323. self._urlconf_module = import_module(self.urlconf_name) File"D:\Super Developer\Python\lib\site-packages\django\utils\importlib.py" in import_module 35. __import__(name) Exception Type: ImportError at /blog Exception Value: No module named urls |
。
项目/应用程序结构:
- 管理.py
- 初始PY
- 设置.py
- 网址.py
- wsgi.py版
- 博客
- 初始PY
- 型号.py
- 视图.py
- 网址.py
- 测试.py
- 模板-archive.html
python路径
['D:\Super Developer\Proj\mysite',
'C:\Windows\system32\python27.zip', 'D:\Super
Developer\Python\DLLs', 'D:\Super Developer\Python\lib',
'D:\Super Developer\Python\lib\plat-win', 'D:\Super
Developer\Python\lib\lib-tk', 'D:\Super Developer\Python',
'D:\Super Developer\Python\lib\site-packages']
号
1 | url(r'^blog/', include('mysite.blog.urls')), |
可能需要将此更改为
1 | url(r'^blog/', include('blog.urls')), |
号
注意:没有'mysite'前缀。
检查应用程序URL文件中的媒体或静态URL声明是否使用
1 2 3 | url(r'^media/(?P<path>.*)$', 'django.views.static.serve' , {'document_root': settings.MEDIA_ROOT} ), |
而不是在应用程序URL文件中。
我有同样的问题,改变了这个,我不再有这个问题了。
在blog的urls.py中,导入
但在project的urls.py中,您使用
江户十一〔一〕号
这是缩进的吗?至少在我看来,后者似乎失败了。
看起来您使用的是django 1.6或更高版本。由于框架中的某些更改,此代码将无法工作。在blog的urls.py中使用1.5或此代码:
1 2 3 4 5 6 | from django.conf.urls import patterns, include, url from blog import views urlpatterns = patterns('', url(r'^$', views.archive), ) |
。
在views.py中:
1 2 3 4 5 6 7 8 9 | from django.template import loader, Context from django.http import HttpResponse from blog import models def archive(request): posts = models.BlogPost.objects.all() t = loader.get_template('archive.html') c = Context({ 'posts': posts }) return HttpResponse(t.render(c)) |
。
我的一个朋友正在学习Django的一些教程,却得到了同样的错误。他犯的错误是在文件结构上。在新版本的django中,它创建了两个目录级别,例如mysite/mysite,他尝试将blog文件夹放在mysite/blog中,而不是mysite/mysite/blog中。在做了那个改变之后,一切似乎都很好。试着看看你的结构,希望它能有所帮助。
尝试提供:
1 | url(r'^blog/', include('mysite.urls')), |
。
我认为
1 2 3 | urlpatterns = patterns('', url(r'^$',archive), <-- delete this comma ) |
如果没有出现任何异常,也尝试运行
也许你在你的博客文件夹里找不到一个文件。