Requisitos previos
Antes de practicar el script que se muestra en este tutorial, asegúrese de completar las siguientes tareas.
Configurar una aplicación Django
Ejecute el siguiente comando para crear una aplicación Django con nombre enchufe:
$ python3 gestionar.py startapp socketappEjecute el siguiente comando para instalar el canal:
$ canales de instalación de PIPAgregue los canales y el nombre de la aplicación al Instalado_app parte de ajustes.py archivo:
Instalado_apps = [Definir el valor de ASGI_APplication en el ajustes.py archivo:
Asgi_application = 'canal_pro.asgi.solicitud'Crea una carpeta llamada plantillas dentro de enchufe carpeta y establecer la ubicación de la aplicación de la plantilla en el PLANTILLAS parte de ajustes.py archivo:
Plantillas = [La siguiente salida aparecerá en el terminal después de ejecutar el servidor Django. La salida muestra que la versión 3 de ASGI/Channels.0.3 se está ejecutando.
Crear un archivo de plantilla llamado índice.html En la ubicación de la plantilla definida para mostrar los datos enviados por WebSocket. El objeto Socket que se crea usando JavaScript leerá los datos utilizando el JSON.método parse (), luego pasar el valor al contenido del
índice.html
Modificar el puntos de vista.py archivo del enchufe con el siguiente contenido. El índice.html El archivo de plantilla se mostrará en el navegador con el texto variable cuando el índice() El método de este script se llama desde el URLS.py archivo. Si no se transmite ningún mensaje desde el socket, entonces el texto 'Linuxhint'se mostrará en el navegador.
puntos de vista.py
# Importar módulo de renderizado de DjangoModificar el URLS.py archivo del enchufe con el siguiente contenido. Se definen dos caminos en el script: el 'administración/'La ruta se usa para abrir el tablero de administración de Django y el' 'msg/'La ruta se usa para leer el mensaje de WebSocket.
URLS.py
de Django.administrador de importación de contribuciónCuando se ejecuta la siguiente URL sin definir el consumidor y los archivos de enrutamiento, el protocolo HTTP funcionará y aparecerá la siguiente salida.
http: // localhost: 8000/msg
Ahora, crea un consumidores.py archivo dentro del enchufe carpeta con el siguiente script. El conectar() método de ws_consumer se utilizará para aceptar la conexión Socket, leer el valor de tiempo actual cada segundo y enviar la hora actual en formato JSON a través de WebSocket cuando se llama a este método desde el archivo de enrutamiento.
consumidores.py
# Importar módulo JSONCrear el enrutamiento.py dentro de enchufe carpeta con el siguiente script. El 'msg/'La ruta se define en el script para llamar al consumidor para enviar los datos al socket.
enrutamiento.py
de Django.ruta de importación de URLSModificar el asgi.py Archivo con el siguiente script. Los módulos que se requieren para manejar HTTP y las solicitudes de WebSocket se importan en el script.
asgi.py
# Importar módulo OSAhora, ejecute la siguiente URL del navegador nuevamente para leer los datos del WebSocket.
http: // localhost: 8000/msg/
Si el consumidor y el enrutador funcionan correctamente, entonces se mostrará el siguiente reloj digital en el navegador. Aquí, el enrutador ha enviado la solicitud WebSocket utilizando el 'msg/'ruta al consumidor que ha aceptado la solicitud y envió los datos a la plantilla para mostrar el reloj digital en el navegador donde el segundo valor de la hora actual se actualiza cada segundo.
Conclusión
Este tutorial le mostró cómo implementar una aplicación en tiempo real utilizando el marco y los canales de Django creando un reloj digital simple. Otros tipos de aplicaciones en tiempo real también se pueden implementar utilizando django y canales, como sistemas de chat en línea. Los scripts utilizados en este tutorial trabajan para las versiones de Django 3+ y las versiones de canal 3+ solo. Entonces, si está utilizando una versión anterior de Django o canal, deberá actualizar la versión antes de probar el script proporcionado en este tutorial.