Conditions préalables
Avant de pratiquer le script indiqué dans ce tutoriel, assurez-vous de terminer les tâches suivantes.
Configurer une application Django
Exécutez la commande suivante pour créer une application django nommée socketapp:
$ python3 gérer.py startapp socketappExécutez la commande suivante pour installer le canal:
$ PIP Installer les canauxAjouter les canaux et le nom de l'application au Installé_app partie de la paramètres.py déposer:
Installé_apps = [Définir la valeur d'Asgi_application dans le paramètres.py déposer:
ASGI_APPLICATION = 'Channel_pro.ASGI.application'Créer un dossier nommé modèles à l'intérieur de socketapp dossier et définissez l'emplacement du modèle de l'application dans le Modèles partie de la paramètres.py déposer:
Modèles = [La sortie suivante apparaîtra dans le terminal après avoir exécuté le serveur Django. La sortie montre que ASGI / Channels version 3.0.3 est en cours d'exécution.
Créer un fichier de modèle nommé indice.html Dans l'emplacement du modèle défini pour afficher les données envoyées par le WebSocket. L'objet Socket créé à l'aide de JavaScript lira les données à l'aide du JSON.méthode parse (), puis transmette la valeur dans le contenu du
indice.html
Modifier le vues.py fichier du socketapp avec le contenu suivant. Le indice.html Le fichier de modèle sera affiché dans le navigateur avec le texte variable lorsque le indice() la méthode de ce script est appelée à partir du URL.py déposer. Si aucun message n'est transmis à partir de la prise, alors le texte 'Linuxhint'sera affiché dans le navigateur.
vues.py
# Importer le module de rendu de DjangoModifier le URL.py fichier du socketapp avec le contenu suivant. Deux chemins sont définis dans le script: le 'admin /'Le chemin est utilisé pour ouvrir le tableau de bord de l'administration Django, et le'msg /'Le chemin est utilisé pour lire le message WebSocket.
URL.py
De Django.contriber d'importation administrateurLorsque l'URL suivante est exécutée sans définir le consommateur et les fichiers de routage, le protocole HTTP fonctionnera et la sortie suivante apparaîtra.
http: // localhost: 8000 / msg
Maintenant, créez un consommateurs.py fichier à l'intérieur du socketapp dossier avec le script suivant. Le connecter() méthode de WS_CONSUMER sera utilisé pour accepter la connexion de socket, lire la valeur de temps actuelle à chaque seconde et envoyer l'heure actuelle au format JSON via WebSocket lorsque cette méthode est appelée à partir du fichier de routage.
consommateurs.py
# Importer le module JSONCréer le routage.py à l'intérieur de socketapp dossier avec le script suivant. Le 'msg /'Le chemin est défini dans le script pour appeler le consommateur pour avoir envoyé les données à la prise.
routage.py
De Django.Chemin d'importation des URLModifier le ASGI.py fichier avec le script suivant. Les modules nécessaires pour gérer les demandes HTTP et WebSocket sont importés dans le script.
ASGI.py
# Module d'importation du système d'exploitationMaintenant, exécutez à nouveau l'URL suivante à partir du navigateur pour lire les données de WebSocket.
http: // localhost: 8000 / msg /
Si le consommateur et le routeur fonctionnent correctement, l'horloge numérique suivante sera affichée dans le navigateur. Ici, le routeur a envoyé la demande WebSocket en utilisant le 'msg /'Chemin vers le consommateur qui a accepté la demande et a envoyé les données au modèle pour afficher l'horloge numérique du navigateur où la deuxième valeur de l'heure actuelle est la mise à jour de chaque seconde.
Conclusion
Ce tutoriel vous a montré comment implémenter une application en temps réel à l'aide du framework et des canaux Django en créant une simple horloge numérique. D'autres types d'applications en temps réel peuvent également être mis en œuvre à l'aide de Django et de canaux, tels que les systèmes de chat en ligne. Les scripts utilisés dans ce tutoriel fonctionnent pour les versions Django 3+ et les versions de canal 3+ seulement. Donc, si vous utilisez une version antérieure Django ou Channel, vous devrez mettre à niveau la version avant de tester le script fourni dans ce tutoriel.