@idze

Как отдать случайный статичный файл Tornado web?

Использую Tornado для простого домашнего проекта. Появилась необходимость отдать по адресу(маске адресов) один из пяти статичных файлов.
Пример из документации показывает как обработать любой вызов по некоему адресу( /static/(.*) ) как запрос статики.
application = web.Application([
    (r"/static/(.*)", web.StaticFileHandler, {"path": "/var/www"}),
])

Но как мне по другому адресу ( например /random/static/ ) отдать один из пяти статичных файлов?

P.S.
Tornado 3.2
Python 3
  • Вопрос задан
  • 2785 просмотров
Решения вопроса 1
@idze Автор вопроса
Самым простым и рабочим решением оказался случайный редирект.
class MainHandler(tornado.web.RequestHandler):
	def get(self):
		items = [1, 2, 3, 4, 5]
		self.redirect('http://127.0.0.1:8888/static/'+str(random.choice(items))+'.png')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SolidlSnake
@SolidlSnake
Ваш дружелюбный сосед
Вот тут, для отдачи произвольного файла советуют создать подкласс StaticFileHandler и оперировать через него.
Подобным образом имея список файлов и модуль random можно попытаться отдавать случайные файлы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы