Python Brasil 2022

Your locale preferences have been saved. We like to think that we have excellent support for English in pretalx, but if you encounter issues or errors, please contact us!

Django, asyncio e websockets
2022-10-21 , Jaraqui - Vasco Vasquez

Será demonstrado um padrão para desenvolvimento de aplicações web em tempo real, utilizando signals do Django, com Channels, ASGI, REST Framework e Celery.


Desde que a ASGI foi implementada no Django, em 2019, que é possível dispor de toda a agilidade, escalabilidade e consistência desse framework para desenvolver aplicações em tempo real, utilizando websockets, sem inserir latência na propagação das atualizações do banco de dados para o navegador. Nesta palestra, será demonstrado um padrão para isso, usando como exemplo uma sala de chat.

Ao final, será lançado uma nova camada para o Django que torna o processo mais rápido, simples e elegante. O código é resultado de 20 meses de desenvolvimento e maturação em produção e será publicado na Python Brasil.

Tópicos:

  • Apresentação do palestrante e porquê agora, com ASGI, Django é O Framework
  • Apresentação do backend de uma aplicação de chat completa, síncrona, sem websockets, utilizando REST Framework. Este é o contexto de um projeto existente, em que será implementada atualização em tempo real por websockets.
  • Explicação do asyncio e a programação assíncrona, explicando o que está por trás, sem aprofundar, com foco na prática.
  • Apresentação do Django Channels
  • Implementação de um signal que envia atualizações do modelo direto pelo websocket.
  • Aprofundamento sobre asyncio, demonstrando como a latência é reduzida sem aumentar o consumo de recursos. Explicação sobre o broker (Redis / RabbitMQ)
  • Integração com Celery para tarefas em background
  • Apresentação de um novo módulo Django que torna todo esse processo muito mais simples, rápido e elegante.

Link: https://www.youtube.com/watch?v=GZm9w77WUkY

Asa

A Terra era criancinha ainda quando Asa começou a codar. Está voltando à Python Brasil depois de tanto tempo, que as edições de que participou nem aparecem mais no checkbox. Autor da lib OO, Sheet!