django url匹配coltrane教程的失败

时间:2012-09-18 16:04:26

标签: python django

Noob问题可以肯定。我正在从Practical Django Projects,第二版开始研究coltrane项目。

我的urlpattern条目是:

(r'^blog/(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$', 'coltrane.views.entry_detail'),

实际网址为:127.0.0.1:8000 / blog / 12 / sep / 17 /thank-you-very-much

实际的URL不会触发视图 - 'coltrane.views.entry_detail' - 与urlpattern条目相关联。相反,它会在url模式元组的末尾触发catchall模式。捕获模式是:

(r'', include('django.contrib.flatpages.urls')),

当浏览器尝试加载页面时,manage.py报告:[18 / Sep / 2012 10:59:31]“GET / blog / 2012 / sep / 17 /非常感谢HTTP / 1.1 “404 1667

调试页面报告未找到页面,No FlatPage与给定查询匹配。

据我所知,一切都井然有序。那么我在这里简单的NOOB错误是什么?

2 个答案:

答案 0 :(得分:2)

更改“P?”在捕捉slu field场时,“?P”。 (P?[ - \ w] +)=&gt; (P 2 [ - \ W] +)

答案 1 :(得分:2)

您必须在网址的末尾添加斜杠,因为正则表达式定义了在网址末尾匹配斜杠(/$

所以改成它:

127.0.0.1:8000/blog/2012/sep/17/thank-you-very-much/