Em algumas situações precisamos disponibilizar um documento rapidamente dentro da intranet da empresa para visualização ou até mesmo enviar e receber arquivos de uma forma prática, sem utilizar compartilhamento de rede ou demais tecnologias.
Para suprir esta questão e até mesmo nos permitir testar recursos de rede, existem dois módulos em Python que nos permitem criar servidores HTTP e FTP, são eles: SimpleHTTPServer e pyftpdlib respectivamente.
Para criar um servidor HTTP básico basta abrir o prompt de comando ou shell e executar o seguinte comando:
C:\> python -m SimpleHTTPServer 8080
Onde 8080 é a porta que desejamos disponibilizar para o serviço. Pode ser qualquer uma, desde que esteja disponível.
Feito isso abra o seu navagador no seguinte endereco:
http://127.0.0.1:8080
Se for acessar de outra máquina subistitua o endereço de loopback pelo endereço IP na rede.
Será exibido o conteúdo do diretório onde você executou o comando anterior. Para um exemplo mais prático faça o seguinte, no prompt de comando:
C:\> mkdir servidor C:\> cd servidor C:\servidor> echo TESTE > index.html C:\servidor> python -m SimpleHTTPServer 8080
Abrindo o navegador você verá a página com a palavra TESTE.
Para criar um servidor FTP você precisa do módulo pyftpdlib. Para instalar execute o seguinte comando:
C:\> pip install pyftpdlib
Feito isso, basta executar o seguinte para botar o servidor no ar :)
C:\> python -m pyftpdlib -p2121
Este comando irá subir um servidor FTP na porta 2121.
Para conectar ao servidor utilize um cliente FTP, tal como o FileZilla, e especifique o endereço IP do seu computador, porta 2121 e conexão anônima (usuário: anonymous, senha: um e-mail qualquer).
E pronto, um servidor básico funcionando :)
Por enquanto é isso. Abraço!