Introducción a Django Channels

Rocka

Felipe Salazar

FullStack Developer

https://rocka.co

Django Framework

"Django es un framework web Python de alto nivel que fomenta un desarrollo rápido y un diseño limpio y pragmático."

Por qué usar Django ?

"Con Django, puede llevar las aplicaciones web desde el concepto hasta el lanzamiento en cuestión de horas. Django se encarga de gran parte de las molestias del desarrollo web, por lo que puedes concentrarte en escribir tu aplicación sin necesidad de reinventar la rueda. Es gratis y de código abierto."

Características

  • Ridículamente Rápido
  • Completamente Cargado
  • Tranquilamente Seguro
  • Extremadamente Escalable
  • Increíblemente Versátil

La web tradicional

El desarrollo web en general se ha movido en un paradigma donde la información se ofrecía a través de páginas web estáticas, o recuperando esa información desde una base de datos y sirviéndola siguiendo el patrón MVC

La web del futuro

Las aplicaciones necesitan ser más ricas e interactuar más con los clientes.

Nuevas tecnologías como Ajax y WebSockets están sobradamente consolidadas y es necesario integrarlas de la manera más rápida y sencilla posible.

Channels

Channels nos ofrece dos grandes funcionalidades nuevas, a través de una nueva abstracción:

 

  1. Manejar de una forma sencilla e integrada en el framework todo el trasiego de información y la gestión asociada a los WebSockets.
  2. Nos proporciona la posibilidad de manejar y gestionar las tareas que ejecutarán en background y que harán de consumidores.

Componentes de Channels

  • ASGI Server
  • ASGI Router
  • Web Workers

Conceptos Básicos

Channel: es una estructura de datos que es una cola de primero en entrar, primero en salir, ordenada, con vencimiento de mensaje y entrega a lo sumo a solo un oyente a la vez 

Conceptos Básicos

Tipos de Channels

 

  • websocket.connect
  • wesocket.receive
  • websocket.disconnect

Conceptos Básicos

Consumidores:

Un consumidor es una función que recibirá un mensaje (solicitud de websocket), lo procesará y puede devolver o no una respuesta.

def ws_connect(message):
    message.reply_channel.send({
        'accept':True
    })

Conceptos Básicos

Grupos:

Un consumidor es una función que recibirá un mensaje (solicitud de websocket), lo procesará y puede devolver o no una respuesta.

def ws_connect(message):
    Group('python-pereira').add(message.reply_channel)
    
    message.reply_channel.send({
        'accept':True
    })

Un ejemplo

Documentación

Gracias!

Preguntas?

@elpipesalazar

Made with Slides.com