Django urls.py给出了问题

时间:2012-04-13 04:45:06

标签: python django apache

我有一个在Django上运行的应用程序。我们的urls.py有以下条目 -

url(r'^$', 'web.views.index', name='index'),
url(r'^g$', 'web.views.getpost', name='getpost'),

url(r'^p$', 'web.views.postarticle', name='postarticle'),

这对于url模式工作正常。但是,我添加了两个url模式 -

url(r'^d$', 'web.views.delete', name='delete'),

url(r'^u$', 'web.views.update', name='update'),

当我点击

http://127.0.0.1:8000/d

它给出 - 当前网址d与这些网址中的任何一个都不匹配。

我不知道为什么它没有识别新添加的url模式。知道为什么它不起作用吗?

编辑:正如韦斯利所说,它显示:

请求网址:http://127.0.0.1:8000/d Django按以下顺序尝试了这些网址格式:

^$ [name='index']
^g$ [name='getpost']
^p$ [name='postarticle']

它没有显示^ d或^ u url模式。

这是我的urls.py

from django.conf.urls.defaults import patterns, url
from django.conf import settings

urlpatterns = patterns('',
    url(r'^$', 'web.views.index', name='index'),
    url(r'^g$', 'web.views.getpost', name='getpost'),

    url(r'^p$', 'web.views.postarticle', name='postarticle'),
url(r'^d$', 'web.views.delete', name='delete'),

    url(r'^u$', 'web.views.update', name='update'),
)

2 个答案:

答案 0 :(得分:1)

问题不在于您提供的信息中。您尝试访问的网址格式和网址都可以。

- >调试视图究竟返回了什么?是显示:

  

请求网址:http://127.0.0.1:8000/d   Django按以下顺序尝试了这些URL模式:

^ ^$ [name='index']
^ ^g$ [name='getpost']
^ ^p$ [name='postarticle']
^ ^d$ [name='delete']
^ ^u$ [name='update']

调试视图可能不会列出删除网址,它会显示拼写错误,或者请求网址略有不同。如果您仍然无法找出问题,请尝试向我们提供更多信息!

答案 1 :(得分:1)

如问题评论中所示,问题是陈旧的.pyc文件。通过删除.pyc文件并重新启动服务器来解决此问题。

为了防止将来出现此问题,您应该在启动开发服务器之前删除.pyc文件。您可以使用以下命令快速删除当前目录和所有子目录中的所有pyc文件(确保在杀死它们之前检查该find是否返回正确的文件)。

find . -name "*.pyc" #Find all pyc files and list them to console
find . -name "*.pyc" -exec rm '{}' ';' #Run command rm on each file found