2010-04-29 25 views
4

我是一名需要幫助的Django新手:儘管我在urls.py中更改了一些url,但我仍然從Django獲取相同的錯誤消息。這裏是我的settings.py相關線路:Django緩存url正則表達式模式嗎?

ROOT_URLCONF = 'mydjango.urls' 

這裏是我的urls.py:

from django.conf.urls.defaults import * 

# Uncomment the next two lines to enable the admin: 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    # Example: 
    # (r'^mydjango/', include('mydjango.foo.urls')), 

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
    # to INSTALLED_APPS to enable admin documentation: 
    #(r'^admin/doc/', include(django.contrib.admindocs.urls)), 

    # (r'^polls/', include('mydjango.polls.urls')), 
    (r'^$', 'mydjango.polls.views.homepage'), 
    (r'^polls/$', 'mydjango.polls.views.index'), 
    (r'^polls/(?P<poll_id>\d+)/$', 'mydjango.polls.views.detail'), 
    (r'^polls/(?P<poll_id>\d+)/results/$', 'mydjango.polls.views.results'), 
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'mydjango.polls.views.vote'), 
    (r'^polls/randomTest1/', 'mydjango.polls.views.randomTest1'), 
    (r'^admin/', include(admin.site.urls)), 
) 

因此,我希望,每當我參觀http://mydjango.yafz.org/polls/randomTest1/的mydjango.polls.views.randomTest1函數應因爲在我的民意測驗運行/ views.py我有相關的功能:

def randomTest1(request): 
    # mainText = request.POST['mainText'] 
    return HttpResponse("Default random test") 

但是我一直收到以下錯誤信息:

Page not found (404) 
Request Method:  GET 
Request URL: http://mydjango.yafz.org/polls/randomTest1 

Using the URLconf defined in mydjango.urls, Django tried these URL patterns, in this order: 

    1. ^$ 
    2. ^polls/$ 
    3. ^polls/(?P<poll_id>\d+)/$ 
    4. ^polls/(?P<poll_id>\d+)/results/$ 
    5. ^polls/(?P<poll_id>\d+)/vote/$ 
    6. ^admin/ 
    7. ^polls/randomTest/$ 

The current URL, polls/randomTest1, didn't match any of these. 

我很驚訝,因爲我一再檢查urls.py並沒有

^polls/randomTest/$ 
在它

,但

^polls/randomTest1/' 

這似乎是Django的是某種存儲之前的urls.py內容和我不知道如何使我的最新更改生效。

任何想法?當我嘗試加載該頁面時,爲什麼我會繼續看到一些舊版本的正則表達式,即使我更改了我的urls.py?

+0

自從進行更改後,您是否重新啓動了服務器(開發或Apache)? – 2010-04-29 12:58:42

+0

我已經重新啓動它並且Django開始按照我的預期工作。這是正常工作流程嗎?我的意思是每當我對urls.py進行更改時,是否應該重新啓動服務器?是不是有一個更好,更不討厭的方式? – 2010-04-29 13:05:12

+0

不只是urls.py - 只要任何Django代碼(非模板)發生更改,您都需要重新啓動。但是,開發服務器應該自動重啓。 – 2010-04-29 13:56:31

回答

7

由於性能原因,Django在啓動時編譯URL正則表達式 - 重新啓動服務器,您應該看到新URL可以正常工作。

+1

我已經重新啓動它,Django開始按我的預期工作。這是正常工作流程嗎?我的意思是每當我對urls.py進行更改時,是否應該重新啓動服務器?是不是有一個更好,更不討厭的方式? – 2010-04-29 13:06:15

+0

是的,使用開發服務器比較好。 – fastmultiplication 2010-10-06 16:55:36

+1

有什麼方法可以在不重新啓動服務器的情況下以編程方式「刷新」緩存的URL模式? – 2011-04-14 03:31:55