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

轉自:http://blog.csdn.net/cfylove/article/details/52795393




新手學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

咋辦勒?

第三步,只能去FQgoogle了,最好的解決辦法是這樣的,刪除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)
]


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章