Tutorial 6 - Colocar na web!¶
Para além de oferecer suporte a plataformas móveis, o kit de ferramentas de widget Toga também oferece suporte a web! Usando a mesma API que usou para implementar as suas aplicações de ambiente de trabalho e móvel, pode implementar a sua aplicação como uma aplicação web de página única.
Prova de conceito
O backend do Toga Web é o menos maduro de todos os backends do Toga. Ele está maduro o suficiente para mostrar alguns recursos, mas é provável que apresente bugs e não tenha muitos dos widgets disponíveis nas outras plataformas. Neste momento, a implementação na Web deve ser considerada uma "Prova de Conceito" - o suficiente para demonstrar o que pode ser feito, mas não o suficiente para ser usado num desenvolvimento a sério.
Se tiver problemas com este passo do tutorial, pode saltar para a próxima página.
Implementação como uma aplicação Web¶
O processo de implementação como uma aplicação da Web de página única segue o mesmo padrão familiar - você cria a aplicação, depois compila a aplicação, e depois corre-a. No entanto, o Briefcase pode ser um pouco inteligente; se tentar executar uma aplicação e o Briefcase determinar que ela não foi criada ou compilada para a plataforma que está sendo visada, ele vai executar as etapas de criação e compilação para si. Como esta é a primeira vez que executamos a aplicação para a Web, podemos executar todas as três etapas com um único comando:
(beeware-venv) $ briefcase run web
[helloworld] A gerar modelo de aplicação...
A usar modelo de aplicação: https://github.com/beeware/briefcase-web-static-template.git, ramificação v0.3.18
...
[helloworld] A instalar pacote de suporte...
Nenhum pacote de suporte necessário.
[helloworld] A instalar o código da aplicação...
A instalar src/helloworld... concluído
[helloworld] A instalar os requisitos...
A gravar ficheiro de requisitos... concluído
[helloworld] A instalar recursos da aplicação...
...
[helloworld] A remover conteúdo desnecessário da aplicação...
A remover conteúdo desnecessário do pacote da aplicação... concluído
[helloworld] Criado build/helloworld/web/static
[helloworld] A compilar projeto web...
...
[helloworld] Compilado build/helloworld/web/static/www/index.html
[helloworld] A iniciar servidor web...
Servidor web aberto em http://127.0.0.1:8080
[helloworld] Saída do relatório do servidor web (digite CTRL-C para parar o relatório)...
===========================================================================
(beeware-venv) $ briefcase run web
[helloworld] A gerar modelo de aplicação...
A usar modelo de aplicação: https://github.com/beeware/briefcase-web-static-template.git, ramificação v0.3.18
...
[helloworld] A instalar pacote de suporte...
Nenhum pacote de suporte necessário.
[helloworld] A instalar o código da aplicação...
A instalar src/helloworld... concluído
[helloworld] A instalar os requisitos...
A gravar ficheiro de requisitos... concluído
[helloworld] A instalar recursos da aplicação...
...
[helloworld] A remover conteúdo desnecessário da aplicação...
A remover conteúdo desnecessário do pacote da aplicação... concluído
[helloworld] Criado build/helloworld/web/static
[helloworld] A compilar projeto web...
...
[helloworld] Compilado build/helloworld/web/static/www/index.html
[helloworld] A iniciar servidor web...
Servidor web aberto em http://127.0.0.1:8080
[helloworld] Saída do relatório do servidor web (digite CTRL-C para parar o relatório)...
===========================================================================
(beeware-venv) C:\...>briefcase run web
[helloworld] A gerar modelo de aplicação...
A usar modelo de aplicação: https://github.com/beeware/briefcase-web-static-template.git, ramificação v0.3.18
...
[helloworld] A instalar pacote de suporte...
Nenhum pacote de suporte necessário.
[helloworld] A instalar o código da aplicação...
A instalar src/helloworld... concluído
[helloworld] A instalar os requisitos...
A gravar ficheiro de requisitos... concluído
[helloworld] A instalar recursos da aplicação...
...
[helloworld] A remover conteúdo desnecessário da aplicação...
A remover conteúdo desnecessário do pacote da aplicação... concluído
[helloworld] Criado build\helloworld\web\static
[helloworld] A compilar projeto web...
...
[helloworld] Compilado build\helloworld\web\static\www\index.html
[helloworld] A iniciar servidor web...
Servidor web aberto em http://127.0.0.1:8080
[helloworld] Saída do relatório do servidor web (digite CTRL-C para interromper o relatório)...
===========================================================================
Isto vai abrir um navegador de Web, apontado para

Se inserir o seu nome e clicar no botão, será mostrado um diálogo.
Como isto funciona?¶
Esta aplicação Web é um site estático - uma única página de origem HTML, com
alguns recursos CSS e outros. O Briefcase iniciou um servidor Web local para
servir essa página para que o seu navegador possa visualizá-la. Se quiser
colocar essa página Web em produção, pode copiar o conteúdo da pasta www para
qualquer servidor Web que possa servir conteúdo estático.
Mas quando pressiona o botão, está a executar código Python… como isso funciona? O Toga usa o PyScript para fornecer um interpretador Python no navegador. O Briefcase empacota o código da sua aplicação como rodas que o PyScript pode carregar no navegador. Quando a página é carregada, o código da aplicação é executado no navegador, criando a interface de utilizador usando o DOM do navegador. Quando clica num botão, esse botão executa o código de manuseamento de eventos no navegador.
Publicar a aplicação web¶
Se desejar, também pode tentar publicar esta aplicação web na internet usando o Plugin PythonAnywhere Briefcase. O tutorial para esse plugin continua a partir deste ponto e orienta-o sobre como empacotar e publicar no PythonAnywhere.
Próximos passos¶
Embora já tenhamos implementado essa aplicação no ambiente de trabalho, em dispositivos móveis e na Web, ela é bastante simples e não envolve bibliotecas de terceiros. Podemos incluir bibliotecas do Python Package Index (PyPI) na nossa aplicação? Consulte o Tutorial 7 para descobrir…