Como criar uma interface web para o meu script Python? [fechadas]

4

Eu tenho um computador no meu escritório da universidade, com o Ubuntu nele, o ssh em execução e o Python. Estou conectando-me usando o ssh para executar programas em Python e ver a saída. Apenas saída de linha de comando, nada extravagante.

No entanto, tenho esse colega que gostaria de permitir fazer o mesmo. Infelizmente, ele não é ótimo com TI, então eu não gostaria de passar por todo o processo de familiarizá-lo com o ssh. Eu estou procurando uma maneira alternativa simples para ele executar o programa e ver a saída (linha de comando).

A execução do programa neste contexto significa estar confinado a uma pasta específica myFolder e fazer python file1.py dentro dessa pasta.

O Ubuntu vem com o apache ou outro servidor web instalado? Existe outro meio de comunicação que eu poderia estabelecer para ele? Ele está usando o Windows 7.

    
por FooBar 25.12.2015 / 17:16

4 respostas

4

Claro que você pode instalar o apache e tentar a sua sorte a partir daí.

Para mim, o seguinte parece mais simples:

  • (opcional) crie uma conta de usuário para ele na máquina da universidade. Isso é para "separá-lo" dos seus arquivos. Isto não é estritamente necessário, mas pode ser uma boa ideia.
  • Instale a massa na máquina Windows 7 do seu amigo.
  • Crie uma sessão de putty (como descrito aqui ) e coloque isso como um ícone na área de trabalho (ou em qualquer outro local conveniente). Certifique-se de também configurar o nome de usuário e senha. (Uma alternativa extravagante seria usar pageant para autenticação)

Dessa forma, tudo o que o seu amigo precisa fazer é clicar em um ícone e ele será apresentado a uma janela de console onde ele poderá usar diretamente o script: python file1.py

    
por user23573 25.12.2015 / 18:42
4

Você pode configurar um servidor de notebook Ipython.

Aqui estão as instruções.

Os notebooks devem ser relativamente fáceis de usar (para alguns aplicativos até melhores que a interface do terminal). Além disso, você não precisa instalar um cliente SSH no computador do seu amigo ou inventar seu próprio protocolo seguro.

    
por Ajasja 25.12.2015 / 23:05
2

Se você já está codificando em Python, pode escrever um front-end da Web para seu programa usando o http.server module em Python 3, ou BaseHTTPServer em Python 2. Seu O programa então emitiria sua saída diretamente sobre HTTP para o navegador remoto. Os detalhes de como fazer isso estão fora do escopo deste site, mas dependendo do seu programa, ele pode ter menos de 10 linhas de código.

Tenha em mente que, ao fazer isso, você perderia toda a capacidade de autenticação e autorização do SSH. Em outras palavras, esse método não permite que o servidor garanta que você ou seu colega acessem a página. Se alguém descobrir o URL correto, ele poderá executar seu programa, potencialmente muitas vezes em rápida sucessão; eles poderiam derrubá-lo; eles poderiam tentar cortá-lo; Mas se esses riscos forem aceitáveis para você, provavelmente será difícil superar o Python puro por simplicidade.

É possível fazer autenticação e autorização via HTTPS, é claro, mas não é mais tão simples.

    
por David Z 25.12.2015 / 21:15
1

O Ubuntu tem um pacote personalizado e pré-configurado para o Ubuntu que inclui o apache e o mysql que você pode instalar com sudo apt-get install lamp-server^ . Se você instalar, precisará codificar o software para fazer o que deseja fazer; como um webservice onde ele entra em um link e, em seguida, vê a saída do python dentro de sua janela do navegador. Eu considero exagero; a menos que você espere fazer mais com isso.

Mas não seria mais fácil criar um script na máquina Windows que executa o ssh, a execução em seu servidor e fazer o download da saída para que ele possa vê-lo? Parece trivial para mim (bem eu faço isso o tempo todo, mas não use o Windows para fazer isso;)).

    
por Rinzwind 25.12.2015 / 17:43