0

在我的 Django urlconf 中,我想为探测脚本的请求返回 404。否则,由于我使用的是 FlatPage 中间件,因此该请求会不必要地访问数据库以查找相应的 FlatPage。

我的问题是,正确匹配的以下模式正在发送“php”、“cgi”或“pl”作为视图函数的template_name参数。page_not_found

urlpatterns = patterns('',
    # don't even bother looking up a flatpage for these matches
    (r'\.(php|cgi|pl)$', 'django.views.defaults.page_not_found'), 
    ...
)

有什么方法可以在不将匹配作为参数发送到视图的情况下执行该正则表达式“或”逻辑?

4

2 回答 2

2

非捕获组用 表示(?:...)

于 2012-04-25T04:14:30.017 回答
0

您可以使用非捕获组:(?:regex)

所以你的模式是:

(r'\.(?:php|cgi|pl)$', 'django.views.defaults.page_not_found'),

于 2012-04-25T04:14:54.760 回答