首页 > 解决方案 > Django url 模式字符串

问题描述

我想创建一个列表页面,其中包含诸如/lists和具有诸如/lists/node-js我正在使用的 url 模式之类的项目 -

url(r'^lists/(?P<foo>[\w\-]+)/$', views.lists_template, name='lists_template'), 但由于这/lists不起作用并显示页面未找到错误。我该如何解决这个问题?

标签: djangopython-3.xdjango-templatesdjango-views

解决方案


您使用了错误的量词:在正则表达式中,+表示一个或多个,而*表示零或多个

如果您还想匹配空字符串,则需要* 量词

此外,我们需要能够使最后一个斜线可选,否则需要两个斜线。所以我们可以使用?表示可选的量词。

url(r'^lists/(?P[\w\-]*)/?$', views.lists_template, name='lists_template'),

推荐阅读