Как отправить данные непрерывно из views.py в html-шаблон в Django?

Есть ли способ отправить непрерывные данные из views.py в html-шаблон? Если я использую return, то мы можем отправить данные только один раз, но я хочу отправлять их непрерывно в течение некоторого времени.

Вот мой пример использования socketio с django.

Прежде всего, необходимо установить python-socket.io.

pip install python-socketio

views.py (вы можете поместить этот код куда угодно, но не в шаблон.)

import os
import socketio

async_mode = None
basedir = os.path.dirname(os.path.realpath(__file__))
sio = socketio.Server(async_mode=async_mode)


# this function is called whenever a client is connected to the server.
@sio.event
def connect(sid, environ):
    sio.emit("response", {"message": "Welcome!"}, room=sid)

wsgi.py

import os

from django.core.wsgi import get_wsgi_application
import socketio
from post.socketioserver import sio

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'test_app.settings')

django_app = get_wsgi_application()
application = socketio.WSGIApp(sio, django_app)

client.html

<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/4.2.0/socket.io.min.js"></script>
<script charset="utf-8" type="text/javascript">
        const socket = io.connect();
        socket.on("connect", ()=>{
            console.log("I'm connected!")
        });
        socket.on("response", (dict)=>{
            console.log(dict["message"]);
        });
</script>
Вернуться на верх