Задать вопрос
@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 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 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 можно попытаться отдавать случайные файлы.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
27 янв. 2025, в 01:27
3000 руб./за проект
27 янв. 2025, в 00:44
1000 руб./за проект