Может ли шаблон django сразу начать потоковую передачу клиенту, не дожидаясь его полной визуализации? - PullRequest
0 голосов
/ 13 марта 2020

Я помню, как работал с PHP долгое время go, и веб-страница начинала бы передаваться напрямую клиенту, затем, если был найден блок php, поток блокировался до тех пор, пока строка из php был возвращен, а затем продолжил отправку данных клиенту. Если исключение найдено, вы можете увидеть часть веб-сайта, а затем исключение в середине веб-страницы.

Я хочу иметь возможность отправить шаблон django клиенту так же, как PHP сделал. Например:

1. <html>
2.   <head>
3.     ...
4.   </head>
5.   <body>
6.     hello {{ some_context_variable }} bye
7.   </body>
8. </html>

Если some_context_variable - это длинная операция с базой данных, я хочу, чтобы пользователь мог видеть hello в браузере, пока не пройдет несколько секунд, и операция db не будет решена, а затем пользователь увидит на экране что-то вроде hello friend bye

Можно ли это сделать с помощью django представлений и рендеринга шаблона django? Если нет, то можно ли это сделать с помощью другого языка шаблонов, такого как jinja2 или другого, в сочетании с django?

Примечание: я знаю, что django имеет StreamingHttpResponse, но, насколько я понимаю, он позволяет только представление отправлять куски. Я хочу, чтобы шаблон отображался чанками, и, возможно, возвращаю эти чанки как StreamingHttpResponse

...