Skip to main content
 首页 » 编程设计

python之是否可以在 Tornado 中捕获处理程序的可选参数

2025年05月04日11dudu

我有一个 URL 绑定(bind)到 Tornado 中的处理程序。例如

(r'/browse/article/([a-zA-Z0-9_-]+)/([0-9]*)', ArticleHandler), 

然而,参数的数量并不固定,例如一些是/browse/article/blah,另一些是/browse/article/blah/2 .换句话说,最后一个参数可能存在也可能不存在。

是否仍然可以使用单个处理程序来处理这种情况?如果是这样,我应该如何制定正则表达式字符串以匹配所有可能的情况?

请您参考如下方法:

试试这个:

(r'/browse/article/([a-zA-Z0-9_-]+)(?:/([0-9]*))?', ArticleHandler), 

这使得最后一段成为可选的,同时保持捕获括号完整,以防它们被用于以后的某些事情。