Executando verificação de segurança...
1

Duvida para construir um frontend para uma aplicação em python.

Fala pessoal, tranquilo ? vou direto ao ponto.
Estou entrando em um projeto onde já foi iniciado uma aplicação CLI em python. Essa aplicação realiza algumas buscas na web e vai retornando urls conforme ela vai achando e lança na tela do terminal. Eu preciso desenvolver uma interface web para esse sistema pois queremos criar uma plataforma (a principio a interface vai ser feita com NextJS).

Minha duvida:

Como podemos fazer para que essas informações que são trazidas pela aplicação sejam passadas em tempo real para o front, pois a cada nova url que ela acha eu preciso que seja mostrada em tela na interface web. Precisamos criar algum serviço intermediador para pegar essas urls e mandar para o front ? que tipo de serviço e qual tecnologia seria necessária ?

Carregando publicação patrocinada...
1

É possível transformar um aplicatição CLI - em parte de uma aplicação web conectando-a via web sockets, e substituindo a entrada padrão (stdin) e saída padrão (stdout) pela comunicação via WebSocket.

É processo é basicamente:

  1. Escolher uma Biblioteca de WebSocket: Você precisará de uma biblioteca de WebSocket para lidar com a comunicação via WebSocket entre o cliente web e o servidor Python. Consulte bibliotecas como websockets ou socket.io (com backend em Python).

  2. Modificar a Lógica da aplicação python: Você precisará modificar a lógica do seu aplicativo CLI para que ele possa se comunicar por meio de conexões WebSocket em vez de depender da entrada padrão e saída padrão. Você deve substituir as partes do seu código que interagem com stdin (input) e stdout (print) pela funções que a biblioteca escolhida fornece para escrever e ler mensagens.

  3. Conectar os sockets: No código JavaScript da sua interface web, estabeleça uma conexão WebSocket com a aplicação python. Você enviará as entradas do usuário da interface web e receberá as respostas da aplicação.

1

Pelo que entendi do projeto, se não for um volume grande de dados acho que um SQLite já resolve o assunto. Em relação ao front, poderia usar o Flask, tendo mais liberdade pra escrever em Angular por exemplo, já que a ideia é apresentar as URLs em tempo real. Seria uma possível solução. Abraço.

1

O post do @clacerda foi direto ao ponto: Websockets.

Mas se você não utilizar algum tipo de armazenamento como um banco de dados essas informações serão enviadas, mas ao sair da página no front e voltar, você não terá suas informações anteriores salvas, e terá que rodar a aplicação novamente.

Se isso for importante para sua aplicação, procure algum banco de dados relacional, ou NoSQL, e veja qual será mais adequado para o seu caso.