Вы не ограничены перечислением RequestHandler только один раз в сопоставлении URL, поэтому вы можете сделать одну из двух вещей: Добавить шаблон, явно соответствующий каждому из шаблонов, упомянутых выше, следующим образом:
def __init__(self):
handlers = [
(r"/", home.HomeHandler),
(r"/products/list/([0-9]+)", product.ProductHandler)
(r"/products/find/([0-9]+)", product.ProductHandler)
(r"/products/copy/([0-9]+)", product.ProductHandler)
(r"/products/(\w+)/(\w+)/(\w+)", product.ProductHandler)]
Или вы можете сказать, что «любой URL, начинающийся с« products », должен быть отправлен в обработчик продукта», например:
def __init__(self):
handlers = [
(r"/", home.HomeHandler),
(r"/products/list/(.*)", product.ProductHandler)
и проанализируйте список переменных самостоятельно в ProductHandler.