使用此正则表达式配置urls.py

时间:2012-02-20 17:26:08

标签: python regex django

我正在尝试构建我的第一个支持Django的博客,但我陷入了困境。

我正在尝试从访问过的网址中获取永久链接,以显示单个帖子。

我正在使用的永久链接是这样的:

http://127.0.0.1:8000/blog/20-feb-2012/a-nice-post/

我想从此网址抓取日期和slug并将其传递到视图的功能中。

我做了这个正则表达式:

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

在urls.py文件中,但它似乎无效。

这个正则表达式出了什么问题?

3 个答案:

答案 0 :(得分:2)

您在日期 - 月份之间包含了斜杠。删除它们。

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

答案 1 :(得分:1)

不检查任何其他内容,您在slug部分中有P?而不是?P

答案 2 :(得分:0)

对于初学者,你的正则表达式中有额外的斜杠,例如(?P<month>\w{3})-**/**(?P<year>\d{4}),你还有P吗?而不是?P在最后。

此外,我认为您可能希望有一个正常的regexp示例。所以我测试了这个,它适用于/blog/20-feb-2012/a-nice-post/

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