piolvior
@piolvior
начинающий продуктовый аналитик

Как выводить процесс выполнения функции на странице html — Django?

В файле views.py у меня существует скрипт

def index(request):
    for i in range(100000):
        print(i)
    return render(request, 'main/index.html', {'title': 'Главная страница сайта', 'tasks': ...})


Как я могу вывести эти принты на странице index.html? Если я вставляю в render - переменную i, то страница находится в процессе ожидания и по итогу показывает только послденее значения в переборе. Я понимаю почему это происходит. Но как мне тогда вывести в процессе онлайн - то что происходит в терминале - на страницу index.html - весь этот перебор?

Как мне кажется, для этого нужен javascirpt -я туда думаю или можно более простым способом это отобразить?
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Никак. HTTP - это протокол формата запрос-ответ без состояния. Для интерактивности нужно что-нибудь типа SSE или WebSockets, а Django к ним не приспособлен сам по себе. Придётся изучать и использовать например Channels, соответствующим образом изменив как бэкенд, так и фронтенд.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest
Работаю с Python/Django
Но как мне тогда вывести в процессе онлайн - то что происходит в терминале - на страницу index.html - весь этот перебор?

Ну, начнем с того, что это пример слишком абстрактный. В общем случае да, для того-чтобы на html-странице появился подобного рода счетчик нужно переписать этот код на js. Но в остальных случаях, я не могу сходу представить ситуацию, в которой подобное пригодится.
Приведите реальный пример такой задачи и тогда можно будет обсуждать варианты.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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