Python

Comment utiliser la chaîne Django

Comment utiliser la chaîne Django
Django est un framework Python populaire utilisé pour développer des applications Web en utilisant le WGSI (Interface de passerelle de serveur Web) et ASGI Spécifications du serveur (Asynchronous Server Gateway Interface). WGSI est utilisé pour développer des applications Python synchrones et AGSI est utilisé pour développer des applications Web asynchrones et synchrones. Canal est une fonctionnalité utile de Django qui est utilisée pour gérer WebSocket, le protocole de discussion, etc. avec le protocole HTTP. Le canal est construit sur les spécifications du serveur ASGI. Une session de communication interactive bidirectionnelle entre le navigateur de l'utilisateur et le serveur peut être ouverte en utilisant un WebSocket. Le client initie le WebSocket connexion et le serveur répond avec un J'accepte ou alors Fermer un message. le WebSocket les messages sont poussés dans le canal en utilisant producteurs et envoyé au consommateurs qui écoutent sur la chaîne. Ce tutoriel vous montre comment utiliser chaînes gérer WebSocket messages.

Conditions préalables

Avant de mettre en pratique le script présenté dans ce didacticiel, assurez-vous d'effectuer 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 socketapp

Exécutez la commande suivante pour installer le canal :

$ chaînes d'installation de pip

Ajoutez les chaînes et le nom de l'application au INSTALLED_APP partie de la Les paramètres.py déposer:

INSTALLED_APPS = [

'canaux',
'socketapp'
]

Définissez la valeur de ASGI_APPLICATION dans le Les 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 Les paramètres.py déposer:

MODÈLES = [

… .
'DIRS' : ['/home/fahmida/channel_pro/socketapp/templates'],
… .
,
]

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 modèle nommé indice.html à 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.parse(), puis transmettez la valeur dans le contenu de la

balise qui contient la valeur d'ID, 'msg.'

indice.html





Tutoriels de la chaîne Django




texte




Modifier le vues.py dossier de la socketapp avec le contenu suivant. le indice.html modèle sera affiché dans le navigateur avec le texte variable lorsque le indice() méthode de ce script est appelée à partir du URL.py déposer. Si aucun message n'est transmis depuis la socket, alors le texte 'LinuxHint' sera affiché dans le navigateur.

vues.py

# Importer le module de rendu depuis Django
de Django.raccourcis import rendu
# Créer une fonction d'index pour afficher le fichier HTML dans le navigateur
def index (demande):
return render(requête, "index.html", context='text': 'LinuxHint')

Modifier le URL.py dossier de la socketapp avec le contenu suivant. Deux chemins sont définis dans le script : le 'administrateur/' path est utilisé pour ouvrir le tableau de bord d'administration Django, et le 'message/' chemin est utilisé pour lire le message WebSocket.

URL.py

de Django.administrateur d'importation de contribution
de Django.chemin d'importation des URL
à partir des vues d'importation socketapp
urlpatterns = [
chemin('admin/', admin.placer.URL),
chemin('msg/', vues.indice)
]

Lorsque l'URL suivante est exécutée sans définir les fichiers de consommation et 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 relier() méthode de ws_consommateur sera utilisé pour accepter la connexion socket, lire la valeur de l'heure actuelle toutes les secondes 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 JSON
importer json
# Importer WebsocketConsumer
des chaînes.générique.Websocket import WebsocketConsumer
# Importer le module datetime
à partir de datetime importer datetime
# Importer le module de veille
du temps importer le sommeil
# Définir la classe consommateur pour envoyer les données via WebsocketConsumer
classe ws_consumer(WebsocketConsumer) :
def connect(self):
soi.J'accepte()
tandis que (Vrai):
maintenant = dateheure.à présent()
soi.envoyer(json.dumps('timeValue' : maintenant.strftime("%H:%M:%S")))
dormir(1)

Créer le routage.py à l'intérieur de socketapp dossier avec le script suivant. Le 'message/' chemin est défini dans le script pour appeler le consommateur pour envoyer les données à la socket.

routage.py

de Django.chemin d'importation des URL
de .les consommateurs importent ws_consumer
# Définir le chemin pour appeler le consommateur
ws_urlpatterns = [
chemin('msg/', ws_consumer.as_asgi())
]

Modifier le asgi.py fichier avec le script suivant. Les modules requis pour gérer les requêtes HTTP et WebSocket sont importés dans le script.

asgi.py

# Importer le module du système d'exploitation
importer le système d'exploitation
# Importez get_asgi_application pour gérer le protocole http
de Django.cœur.importation asgi get_asgi_application
# Importez ProtocolTypeRouter et URLRouter pour définir le routage du socket Web
des chaînes.importation de routage ProtocolTypeRouter, URLRouter
# Importez AuthMiddlewareStack pour gérer le Websocket
des chaînes.auth import AuthMiddlewareStack
# Importer le routage des sockets Web
de socketapp.routage importation ws_urlpatterns
# Attribuer une valeur pour DJANGO_SETTINGS_MODULE
système d'exploitation.environ.setdefault('DJANGO_SETTINGS_MODULE', 'channel_pro.Les paramètres')
# Définir la variable d'application pour gérer http et websocket
application = ProtocolTypeRouter(
'http' : get_asgi_application(),
'websocket' : AuthMiddlewareStack(URLRouter(ws_urlpatterns))
)

Maintenant, exécutez à nouveau l'URL suivante à partir du navigateur pour lire les données du WebSocket.

http://localhost:8000/msg/

Si le consommateur et le routeur fonctionnent correctement, l'horloge numérique suivante s'affichera dans le navigateur. Ici, le routeur a envoyé la requête WebSocket en utilisant le 'message/' chemin vers le consommateur qui a accepté la demande et envoyé les données au modèle pour afficher l'horloge numérique dans le navigateur où la deuxième valeur de l'heure actuelle est mise à jour toutes les secondes.

Conclusion

Ce tutoriel vous a montré comment implémenter une application 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 implémentés à l'aide de Django et de canaux, tels que les systèmes de discussion en ligne. Les scripts utilisés dans ce didacticiel fonctionnent uniquement pour les versions Django 3+ et les versions Channel 3+. Donc, si vous utilisez une version antérieure de Django ou Channel, vous devrez mettre à niveau la version avant de tester le script fourni dans ce tutoriel.

Comment changer les boutons gauche et droit de la souris sur un PC Windows 10
Il est tout à fait normal que tous les appareils de souris d'ordinateur soient conçus de manière ergonomique pour les droitiers. Mais il existe des so...
Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...
Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...