Voraussetzungen
Bevor Sie das in diesem Tutorial gezeigte Skript üben.
Richten Sie eine Django -App ein
Führen Sie den folgenden Befehl aus, um eine Django -App mit dem Namen zu erstellen Socketapp:
$ python3 verwalten.PY StartApp SocketappFühren Sie den folgenden Befehl aus, um den Kanal zu installieren:
$ pip Installieren Sie KanäleFügen Sie den Kanälen und den App -Namen dem hinzu Installed_app Teil der Einstellungen.py Datei:
Installed_apps = [Definieren Sie den Wert der ASGI_Application in der Einstellungen.py Datei:
ASGI_Application = 'Channel_Pro.Asgi.Anwendung'Erstellen Sie einen Ordner mit dem Namen Vorlagen in der Socketapp Ordner und setzen Sie den Speicherort der App der App in der Vorlagen Teil der Einstellungen.py Datei:
Vorlagen = [Nach dem Ausführen des Django -Servers wird die folgende Ausgabe im Terminal angezeigt. Die Ausgabe zeigt, dass ASGI/Kanäle Version 3.0.3 läuft.
Erstellen Sie eine Vorlagendatei mit dem Namen Index.html In der definierten Vorlagespeicherort, um die vom WebSocket gesendeten Daten anzuzeigen. Das Socket -Objekt, das mit JavaScript erstellt wird.Parse () Methode, dann den Wert in den Inhalt des
Index.html
Modifiziere den Ansichten.py Datei der Socketapp mit dem folgenden Inhalt. Der Index.html Die Vorlagendatei wird im Browser mit dem angezeigt Text Variable, wenn die Index() Die Methode dieses Skripts wird aus dem aufgerufen URLs.py Datei. Wenn keine Nachricht aus der Socket übertragen wird, dann der Text 'LinuxHint'wird im Browser angezeigt.
Ansichten.py
# Rendermodul aus Django importierenModifiziere den URLs.py Datei der Socketapp mit dem folgenden Inhalt. Zwei Pfade sind im Skript definiert: das ''Administrator/'Pfad wird verwendet, um das Django Administration Dashboard und das' zu öffnenNachricht/'Pfad wird verwendet, um die WebSocket -Nachricht zu lesen.
URLs.py
von django.Import Administrator beibringenWenn die folgende URL ausgeführt wird, ohne die Verbraucher- und Routing -Dateien zu definieren, funktioniert das HTTP -Protokoll und die folgende Ausgabe wird angezeigt.
http: // localhost: 8000/msg
Erstellen Sie jetzt eine Verbraucher.py Datei in der Socketapp Ordner mit dem folgenden Skript. Der verbinden() Methode von WS_CONSUMER Wird verwendet, um die Socket -Verbindung zu akzeptieren, den aktuellen Zeitwert jede Sekunde zu lesen und die aktuelle Zeit im JSON -Format über WebSocket zu senden, wenn diese Methode aus der Routing -Datei aufgerufen wird.
Verbraucher.py
# JSON -Modul importierenErstellen die Routing.py in der Socketapp Ordner mit dem folgenden Skript. Der 'Nachricht/'Pfad wird im Skript definiert, um den Verbraucher für das Senden der Daten an den Socket anzurufen.
Routing.py
von django.URLS -ImportwegModifiziere den Asgi.py Datei mit dem folgenden Skript. Die Module, die zur Behandlung von HTTP- und WebSocket -Anfragen erforderlich sind, werden im Skript importiert.
Asgi.py
# Betriebssystemmodul importierenFühren Sie nun die folgende URL erneut aus dem Browser aus, um die Daten aus dem WebSocket zu lesen.
http: // localhost: 8000/msg/
Wenn Verbraucher und Router ordnungsgemäß funktionieren, wird die folgende digitale Uhr im Browser angezeigt. Hier hat der Router die WebSocket -Anfrage mit der 'gesendet' gesendet 'Nachricht/'Pfad zum Verbraucher, der die Anforderung akzeptiert und die Daten an die Vorlage gesendet hat, um die digitale Uhr im Browser anzuzeigen, in der der zweite Wert der aktuellen Zeit die gesamte Sekunde aktualisiert.
Abschluss
Dieses Tutorial hat Ihnen gezeigt. Andere Arten von Echtzeitanwendungen können auch mit Django und Kanälen wie Online-Chat-Systemen implementiert werden. Die in diesem Tutorial verwendeten Skripte funktionieren nur für Django -Versionen 3+ und Kanalversionen 3+. Wenn Sie also eine frühere Django- oder Kanalversion verwenden, müssen Sie die Version aktualisieren, bevor Sie das in diesem Tutorial bereitgestellte Skript testen.