Django是否以某种方式缓存url正则模式?
我是一名Django新手,需要一些帮助:即使我在urls.py文件中更改了一些网址,我仍然收到Django的相同错误信息。以下是我settings.py中的相关代码:
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这个函数应该被执行,因为在我的polls/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?
1 个回答
7
Django在启动时会编译网址的规则,这样可以提高性能。所以你只需要重启一下服务器,就能看到新的网址正常工作了。