我想要按照django教程來設置一個簡單的Django應用程序和Django Project,它提供兩個URL:「/」(index)和「/ testweb」。不能讓Django應用程序服務正確的URL
如果我導航到http://localhost:8000/testweb
,我看到「index!」而不是「testweb!」 。我究竟做錯了什麼?
我的項目名爲testweb
,我的應用程序名爲foo
。這裏的testweb/urls.py
:
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^$', include('foo.urls')),
url(r'^testweb/', include('foo.urls')),
)
而這裏的foo/urls.py
:
from django.conf.urls import patterns, url
from django.http import HttpResponse
from foo import views
urlpatterns = patterns('',
url(r'^$', (lambda x: HttpResponse("index!"))),
url(r'^testweb/', (lambda x: HttpResponse("testweb!"))),
)
謝謝!有什麼方法可以更鬆散地將項目和應用程序連接起來嗎?我希望我可以配置該項目,以便它只是將某些URL傳遞給應用程序,然後依靠應用程序對其進行排序。 – loseeka
是的,這就是'include'的意思。你的代碼存在的問題是,它包含了以'/'和'/ testweb'爲根的URL的確切行爲。將根URLConf('testweb/urls.py')更改爲指向不同URL的不同包含。 –
當您進入'/ testweb'時,Django與'testweb/urls.py'中的第二行匹配,然後匹配'foo/urls.py'中的第一行。 –