Maison développement back-end Tutoriel Python Intégration de WebSocket dans le framework Django

Intégration de WebSocket dans le framework Django

Jun 17, 2023 pm 12:00 PM
websocket 集成 django

WebSocket est un protocole de communication en temps réel plus léger et plus efficace que le protocole HTTP et peut implémenter des fonctions telles que des salons de discussion et des notifications en temps réel. Dans Django, nous pouvons intégrer WebSocket dans le framework en tirant parti de la bibliothèque Django Channels pour réaliser une communication en temps réel.

Tout d’abord, nous devons installer Django et la bibliothèque Django Channels. Il peut être installé via l'outil pip, ou d'autres outils de gestion de packages tels que conda peuvent être utilisés.

pip install django
Copier après la connexion
pip install channels
Copier après la connexion

Ensuite, nous devons créer un projet Django. Vous pouvez créer un projet nommé "monprojet" en utilisant la commande suivante.

django-admin startproject myproject
Copier après la connexion

Dans le projet, nous devons créer une application et un dossier pour stocker le code WebSockets. Une application nommée « chat » peut être créée à l'aide de la commande suivante.

python manage.py startapp chat
Copier après la connexion

Ensuite, créez un fichier appelé « routing.py » qui définit la configuration de routage pour WebSocket.

from channels.routing import ProtocolTypeRouter, URLRouter
from django.urls import path
from chat.consumers import ChatConsumer

application = ProtocolTypeRouter({
    "websocket": URLRouter([
        path("ws/chat/", ChatConsumer.as_asgi())
    ])
})
Copier après la connexion

Dans le code ci-dessus, nous définissons une route "websocket", qui acheminera les requêtes WebSocket via "URLRouter" vers le chemin correspondant à "/ws/chat/". Le "ChatConsumer" est ici la classe de consommateur utilisée pour gérer les requêtes WebSocket.

Ensuite, nous devons créer un fichier appelé "consumers.py" pour écrire le code permettant de gérer les requêtes WebSocket.

import json
from channels.generic.websocket import AsyncWebsocketConsumer

class ChatConsumer(AsyncWebsocketConsumer):
    async def connect(self):
        await self.accept()

    async def disconnect(self, close_code):
        pass

    async def receive(self, text_data):
        text_data_json = json.loads(text_data)
        message = text_data_json['message']

        await self.send(text_data=json.dumps({
            'message': message
        }))
Copier après la connexion

Dans le code ci-dessus, nous avons créé une classe de consommateur appelée "ChatConsumer" qui hérite de la classe "AsyncWebsocketConsumer". Il existe trois méthodes dans cette classe :

  • Méthode "connect" : Cette méthode sera appelée lorsque la connexion WebSocket sera établie.
  • Méthode "disconnect": Cette méthode sera appelée lorsque la connexion WebSocket sera fermée.
  • Méthode « receive » : Cette méthode sera appelée lors de la réception d'un message WebSocket.

Dans cette classe de consommateurs, nous avons uniquement implémenté les méthodes « connecter » et « recevoir ». Lorsqu'une connexion WebSocket est établie, la méthode « connect » sera appelée et la connexion sera acceptée via la méthode « accept ». Dans la méthode « recevoir », nous pouvons traiter le message reçu et envoyer la réponse au client via la méthode « envoyer ».

Enfin, nous devons activer la bibliothèque Channels dans le fichier de paramètres de Django. Ajoutez la configuration suivante dans "settings.py" dans le dossier "myproject" :

INSTALLED_APPS = [
    ... # 其他应用程序
    'channels',
    'chat'
]

ASGI_APPLICATION = 'myproject.routing.application'
Copier après la connexion

Dans le code ci-dessus, nous avons ajouté les applications "channels" et "chat" dans "INSTALLED_APPS" puis dans "ASGI_APPLICATION" Configurer l'application défini dans le fichier "routing.py" que nous venons de créer.

D'accord, nous avons maintenant terminé les réglages pertinents pour l'intégration de WebSocket dans Django. Le serveur de développement de Django peut être démarré avec la commande suivante :

python manage.py runserver
Copier après la connexion

Ensuite, vous pouvez utiliser un client WebSocket tel qu'un navigateur pour envoyer des messages au chemin "ws://localhost:8000/ws/chat/" et recevoir le WebSocket nous venons d'écrire La réponse envoyée par le service.

En résumé, en utilisant la bibliothèque Django Channels, nous pouvons facilement intégrer WebSocket dans le framework Django pour réaliser des fonctions de communication en temps réel. Cette approche nous permet de mettre en œuvre de manière plus flexible et efficace des applications nécessitant une communication en temps réel, telles que des salons de discussion et des notifications en temps réel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Django vs Flask : une analyse comparative des frameworks Web Python Django vs Flask : une analyse comparative des frameworks Web Python Jan 19, 2024 am 08:36 AM

Django et Flask sont tous deux leaders dans les frameworks Web Python, et ils ont tous deux leurs propres avantages et scénarios applicables. Cet article procédera à une analyse comparative de ces deux frameworks et fournira des exemples de code spécifiques. Introduction au développement Django est un framework Web complet, son objectif principal est de développer rapidement des applications Web complexes. Django fournit de nombreuses fonctions intégrées, telles que ORM (Object Relational Mapping), formulaires, authentification, backend de gestion, etc. Ces fonctionnalités permettent à Django de gérer de grandes

Avantages et inconvénients du framework Django : tout ce que vous devez savoir Avantages et inconvénients du framework Django : tout ce que vous devez savoir Jan 19, 2024 am 09:09 AM

Django est un framework de développement complet qui couvre tous les aspects du cycle de vie du développement Web. Actuellement, ce framework est l’un des frameworks Web les plus populaires au monde. Si vous envisagez d'utiliser Django pour créer vos propres applications Web, vous devez alors comprendre les avantages et les inconvénients du framework Django. Voici tout ce que vous devez savoir, y compris des exemples de code spécifiques. Avantages de Django : 1. Développement rapide : Djang peut développer rapidement des applications Web. Il fournit une bibliothèque riche et interne

PHP et WebSocket : bonnes pratiques pour le transfert de données en temps réel PHP et WebSocket : bonnes pratiques pour le transfert de données en temps réel Dec 18, 2023 pm 02:10 PM

PHP et WebSocket : meilleures pratiques pour le transfert de données en temps réel Introduction : Dans le développement d'applications Web, le transfert de données en temps réel est une exigence technique très importante. Le protocole HTTP traditionnel est un protocole de modèle requête-réponse et ne peut pas assurer efficacement la transmission de données en temps réel. Afin de répondre aux besoins de transmission de données en temps réel, le protocole WebSocket a vu le jour. WebSocket est un protocole de communication full-duplex qui permet de communiquer en full-duplex via une seule connexion TCP. Comparé à H

SSE et WebSocket SSE et WebSocket Apr 17, 2024 pm 02:18 PM

Dans cet article, nous comparerons les événements envoyés par le serveur (SSE) et les WebSockets, qui sont tous deux des méthodes fiables pour fournir des données. Nous les analyserons sous huit aspects, notamment la direction de la communication, le protocole sous-jacent, la sécurité, la facilité d'utilisation, les performances, la structure des messages, la facilité d'utilisation et les outils de test. Une comparaison de ces aspects est résumée comme suit : Catégorie Événement envoyé par le serveur (SSE) Direction de communication WebSocket Unidirectionnel Bidirectionnel Protocole sous-jacent HTTP Sécurité du protocole WebSocket Identique à HTTP Failles de sécurité existantes Facilité d'utilisation Paramètres Paramètres simples Performances complexes Vitesse d'envoi rapide des messages Affecté par le traitement des messages et la gestion des connexions Structure du message Texte brut ou binaire Facilité d'utilisation Largement disponible Utile pour l'intégration de WebSocket

Comment mettre à niveau la version de Django : étapes et considérations Comment mettre à niveau la version de Django : étapes et considérations Jan 19, 2024 am 10:16 AM

Comment mettre à niveau la version de Django : étapes et considérations, exemples de code spécifiques requis Introduction : Django est un puissant framework Web Python qui est continuellement mis à jour et mis à niveau pour offrir de meilleures performances et plus de fonctionnalités. Cependant, pour les développeurs utilisant des versions plus anciennes de Django, la mise à niveau de Django peut rencontrer certains défis. Cet article présentera les étapes et les précautions à suivre pour mettre à niveau la version de Django et fournira des exemples de code spécifiques. 1. Sauvegardez les fichiers du projet avant de mettre à niveau Djan

Guide de développement PHP Websocket pour implémenter la fonction de traduction en temps réel Guide de développement PHP Websocket pour implémenter la fonction de traduction en temps réel Dec 18, 2023 pm 05:52 PM

Guide de développement PHP Websocket : Implémentation de la fonction de traduction en temps réel Introduction : Avec le développement d'Internet, la communication en temps réel devient de plus en plus importante dans divers scénarios d'application. En tant que protocole de communication émergent, Websocket offre une bonne prise en charge de la communication en temps réel. Cet article vous expliquera en détail comment utiliser PHP pour développer des applications Websocket et combinera la fonction de traduction en temps réel pour démontrer son application spécifique. 1. Qu'est-ce que le protocole Websocket ? Le protocole Websocket est un

Conseils de développement Java Websocket : comment gérer les connexions simultanées Conseils de développement Java Websocket : comment gérer les connexions simultanées Dec 18, 2023 pm 05:33 PM

Conseils de développement Java Websocket : Comment gérer les connexions simultanées À l'ère d'Internet d'aujourd'hui, la communication en temps réel est devenue une exigence importante. En tant que technologie permettant une communication bidirectionnelle en temps réel, Java Websocket est de plus en plus privilégiée par les développeurs. Cependant, dans les applications pratiques, la gestion des connexions simultanées est un problème qui doit être résolu. Cet article présentera quelques techniques de développement JavaWebsocket pour vous aider à mieux gérer les connexions simultanées, tout en fournissant des exemples de code spécifiques. 1. Concepts de base en profondeur

Django est-il front-end ou back-end ? Vérifiez-le! Django est-il front-end ou back-end ? Vérifiez-le! Jan 19, 2024 am 08:37 AM

Django est un framework d'application Web écrit en Python qui met l'accent sur un développement rapide et des méthodes propres. Bien que Django soit un framework Web, pour répondre à la question de savoir si Django est un front-end ou un back-end, vous devez avoir une compréhension approfondie des concepts de front-end et de back-end. Le front-end fait référence à l'interface avec laquelle les utilisateurs interagissent directement, et le back-end fait référence aux programmes côté serveur. Ils interagissent avec les données via le protocole HTTP. Lorsque le front-end et le back-end sont séparés, les programmes front-end et back-end peuvent être développés indépendamment pour mettre en œuvre respectivement la logique métier et les effets interactifs, ainsi que l'échange de données.

See all articles