python+django 更改了urls.py 之后runserver報錯的解決辦法


新手學python+django時,更改了urls.py 為:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', admin.site.urls),
    url(r'^$', 'mysite.views.first_page'),
)

 

進入mysite,啟動服務器:

  python manage.py runserver 8000

卻報錯:ImportError: cannot import name patterns

這是因為:從1.10后django后patterns被移除了,已經沒有這個模塊了。

第一步,我先將

from django.conf.urls import patterns, include, url

改成

from django.conf.urls import include, url

再運行試試看,還是會報錯:TypeError: view must be a callable or a list/tuple in the case of include() 

第二步,既然報這個錯,那我就加上include()唄,於是將

 

url(r'^admin/', admin.site.urls),

 

 

url(r'^$', 'mysite.views.first_page'),

改成

url(r'^admin/', include(admin.site.urls)),

url(r'^$', include('mysite.views.first_page')),

再次運行試試看,又報錯了:ImportError:Not module names'mysite.views.first_page';'mysite.views'is not package

咋辦勒?

第三步,只能去翻牆google了,最好的解決辦法是這樣的,刪除include包並導入mysite.views包:

 

from django.conf.urls import url
from django.contrib import admin
from mysite import views

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$',views.first_page)
]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM