簡體   English   中英

Django-/ blog中的importError。 (沒有名為url的模塊)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM