代码之家  ›  专栏  ›  技术社区  ›  Emre Sevinç

django是否以某种方式缓存url regex模式?

  •  4
  • Emre Sevinç  · 技术社区  · 15 年前

    我是一个需要帮助的django新手:尽管我在urls.py中更改了一些url,我还是不断地从django获得相同的错误消息。以下是my settings.py中的相关行:

    ROOT_URLCONF = 'mydjango.urls'
    

    这是我的url.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以某种方式存储了url.py以前的内容,我只是不知道如何使我最近的更改有效。

    有什么想法吗?当我试图加载那个页面时,为什么我总是看到一些老版本的regex,即使我更改了url.py?

    1 回复  |  直到 15 年前
        1
  •  7
  •   Frozenskys    15 年前

    django在出于性能原因启动url regex时编译url regex-重新启动服务器,您应该看到新的url正常工作。