Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie dwebsocket in Python, um eine Echtzeitaktualisierung von Back-End-Daten zu erreichen

So verwenden Sie dwebsocket in Python, um eine Echtzeitaktualisierung von Back-End-Daten zu erreichen

王林
Freigeben: 2023-05-10 15:34:06
nach vorne
1047 Leute haben es durchsucht

Beim Ausführen einer geplanten Aufgabe müssen wir den Ausführungsprozentsatz oder die Echtzeit-Datenrückgabe kennen. Die Methoden, die zu diesem Zeitpunkt verwendet werden können, sind

1 Ajax fordert den Back-End-Server an und dann die Front-End-Seite wird teilweise gerendert, um den Prozentsatz zu erhalten

2. Verwenden Sie Webscoket für die Kommunikation über lange Verbindungen. Die Ajax-Nutzungsmethode verwendet die Intervallfunktion, um Zeitanforderungen zu implementieren, die hier nicht erläutert werden. Fügen Sie der Datei „views.py“ den folgenden Inhalt hinzu

from django.shortcuts import render,HttpResponse
from dwebsocket.decorators import accept_websocket
import time,random
import uuid
import json
@accept_websocket
def test_websocket(request):
    cnt=1
    if request.is_websocket():
        while True:
            messages = {
                'time': time.strftime('%Y.%m.%d %H:%M:%S', time.localtime(time.time())),
                'server_msg': 'hello%s'%time.time(),
                'client_msg': 'msg%s'%time.time()
            }
            time.sleep(1)
            cnt+=1
            if cnt<=10:
                request.websocket.send(json.dumps(messages))
            else:
                break

def test_websocket_client(request):
    return  render(request,&#39;websocket_client.html&#39;,locals())
Nach dem Login kopieren

settings.py-Datei zum Hinzufügen von dwebsocket

INSTALLED_APPS = [

'django.contrib. admin',

'django.contrib.auth',

'django.contrib.contenttypes',
'django.contrib.sessions' ,

'django.contrib.messages',
'django.contrib.staticfiles',
'dwebsocket'
]


urls.py-Datei fügt relevante Links hinzu

urlpatterns = [
    path(&#39;test_websocket&#39;, views.test_websocket, name=&#39;test_websocket&#39;),
    path(&#39;test_websocket_client&#39;, views.test_websocket_client, name=&#39;test_websocket_client&#39;),
]
Nach dem Login kopieren

Laden Sie den HTML-Code direkt hoch

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>dwebsocket实践</title>
    <script  src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
        $(function () {
            // $(&#39;#send_message&#39;).click(
            //     function() {
                var socket = new WebSocket("ws://" + window.location.host + "/test_websocket");
                socket.onopen = function () {
                    console.log(&#39;WebSocket open&#39;);//成功连接上Websocket
                    // socket.send($(&#39;#message&#39;).val());//发送数据到服务端
                };
                socket.onmessage = function (e) {
                    // console.log(&#39;message: &#39; + e.data);//打印服务端返回的数据
                    $(&#39;#messagecontainer&#39;).text(&#39;<p>&#39; + JSON.parse(e.data).client_msg + &#39;</p>&#39;+&#39;<p>&#39; + JSON.parse(e.data).server_msg + &#39;</p>&#39;);
                    // $(&#39;#messagecontainer&#39;).text(&#39;<p>&#39; + JSON.parse(e.data).server_msg + &#39;</p>&#39;);
                };
                socket.onclose=function () {
                    console.log("连接已关闭")
                }
            // });
        });
    </script>
</head>
<body>
    <input type="text" id="message" value="请输入发送消息!" />
    <button type="button" id="send_message">send message</button>
    <h2>接受到消息</h2>
    <div id="messagecontainer">
    </div>
</body>
</html>
Nach dem Login kopieren
Dann führen wir die aus Programm

Nach zehn Sekunden trennen wir die Verbindung und erhalten die gewünschten Ergebnisse

Geschäftsanforderungen. Wenn ja, können wir unsere Logik in unserem test_websocket ändern und basierend auf den zurückgegebenen Ergebnissen rendernSo verwenden Sie dwebsocket in Python, um eine Echtzeitaktualisierung von Back-End-Daten zu erreichen

Das obige ist der detaillierte Inhalt vonSo verwenden Sie dwebsocket in Python, um eine Echtzeitaktualisierung von Back-End-Daten zu erreichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage