我有一个在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'),
)
答案 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