2013-07-23 124 views
1

我目前使用Django嘗試和創建後的官方網站上的教程應用程序。Django的urls.py和views.py行爲 -

所以我urls.py樣子:

urlpatterns = patterns('', 
    (r'^/$','ulogin.views.index'), #why doesn't this work? 
    (r'^ucode/$', 'ulogin.views.index'), 
    (r'^ucode/(\d+)/$', 'ulogin.views.index'), 
) 

我的views.py看起來像:

def index(request): 
    return HttpResponse("Hello, world. You're at the poll index.") 

def redirect_to_index(request): 
    return HttpResponseRedirect('/ucode/') 

當我運行的服務器來檢查測試網址,http://127.0.0.1:8000/ucode顯示「你好,世界。 ..等等「正確,並且工作得很好。我一直在搞urls.py,但我不知道如何獲得http://127.0.0.1:8000/來顯示ulogin.views.index。

+1

什麼是您的ROOL網址的conf是什麼樣子?如果我的猜測是正確的,'(R「^ $」,「ulogin.views.index」),'應該工作 – karthikr

+0

OMG我很愚蠢的是這工作 – gersande

+0

karthikr謝謝你這麼這麼這麼這麼這麼多 – gersande

回答

2

首先,針對模式來匹配

(r'^/$','ulogin.views.index') 

應該

(r'^$','ulogin.views.index') 

同時,努力因爲匹配以下URL會引發錯誤

(r'^ucode/(\d+)/$', 'ulogin.views.index'), 

沒有以\d+作爲參數的查看方法。

我推薦的解決方法是:

(r'^ucode/(<?P<id>[\d]+)/$', 'ulogin.views.index'), 

然後

def index(request, id=None): 
    return HttpResponse("Hello, world. You're at the poll index.") 

你可以閱讀更多關於named URL groups這裏

+1

我認爲他正在通過django民意調查教程,他還沒有遇到命名的爭論,我想。 –

+0

我正在通過投票教程。但我非常感謝幫助! – gersande

+1

@gersande隨意接受的答案,如果它是 – karthikr

2

它不工作,因爲一個web服務器,當談到根到Django的網址爲特徵的空字符串,像這樣 - >^$。所以,只需將^/$更改爲^$即可。

+0

非常感謝! – gersande

+1

@gersande:很高興幫助男人。 –