Найти - Пользователи
Полная версия: Почему не работает regexp в handlers - tornado.web.Application
Начало » Python для новичков » Почему не работает regexp в handlers - tornado.web.Application
1
rip
Hi All!

В проекте понадобилось переопределить favicon.ico и я столкнулся с очень странной ситуацией, может кто с гуру подскажет, в чем я ошибаюсь.

Есть хрестоматийный код:

dirname = os.path.dirname(__file__)
STATIC_PATH = os.path.join(dirname, 'static')
TEMPLATE_PATH = os.path.join(dirname, 'templates')
FAVICON_PATH = os.path.join(dirname,'favicon.ico')
handlers = [
		        (r'/favicon.ico', tornado.web.StaticFileHandler,{'path' : settings.FAVICON_PATH}),
			(r"/", MainHandler),
		]
		set_params = dict(
		        template_path = settings.TEMPLATE_PATH,
		        static_path = settings.STATIC_PATH,
			debug=True,
			autoescape=None
		)
		
		tornado.web.Application.__init__(self, handlers, **set_params)

На выходе:

[W 140806 18:28:04 web:1812] 404 GET /favicon.ico (127.0.0.1) 4.65ms

т.е. favicon.ico мы не находим.
Ок, похоже не отработался regexp, так как ‘.’ является служебным символом.

		handlers = [
		        (r'/(favicon\.ico)', tornado.web.StaticFileHandler,{'path' : settings.FAVICON_PATH}),
			(r"/", MainHandler),
		]
А вот на выходе еще интереснее:

Вот вот что содержит том случае handlers

('/(favicon\\.ico)', <class 'tornado.web.StaticFileHandler'>, {'path': '/home/rip/work/py-test/favicon.ico'})

Вопрос, что я делаю не так, в случае с заданием regexp для uri?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB