Como usar o Python SimpleHTTPServer

How Use Python Simplehttpserver



A principal tarefa do servidor web é lidar com as solicitações HTTP do cliente. Ele aguarda as solicitações HTTP provenientes do endereço IP e número de porta específicos, lida com a solicitação e envia a resposta do cliente de volta. Python usa o SimpleHTTPServer módulo para criar um servidor web de forma instantânea e fácil servir o conteúdo do arquivo do servidor. Ele também pode ser usado para compartilhamento de arquivos. Para isso, é necessário habilitar este módulo com a localização dos arquivos compartilháveis. Este módulo vem com o interpretador Python. Você não precisa instalá-lo. Uma vez que este módulo é mesclado com o http.server módulo em python3, então você tem que executar http.server para executar o servidor da web em python3. Como o servidor da web pode ser usado para lidar com solicitações HTTP e compartilhar arquivos, foi mostrado neste tutorial.

Execute o servidor da Web a partir do terminal

Execute o seguinte comando para executar o servidor da web a partir do terminal. Se nenhum número de porta for definido no comando, o servidor da web iniciará na porta 8000 por padrão.







$ python3 -m http.servidor



A seguinte saída aparecerá se o servidor da web for iniciado corretamente. CTRL + C é pressionado para parar o servidor.




Execute o seguinte comando para iniciar o servidor da web na porta 8080.





$ python3 -m http.servidor 8080

A seguinte saída aparecerá se o servidor da web for iniciado na porta 8080.



Execute o servidor da Web usando o script Python

Execute os seguintes comandos para criar uma pasta chamada Rede e vá para a pasta. Todos os arquivos de script e arquivos HTML deste tutorial serão criados dentro desta pasta.

$ mkdir web

$CDRede

Crie um arquivo HTML chamado testHTML.html dentro de Rede pasta com o seguinte script. Este arquivo será servido a partir do servidor web posteriormente.

testHTML.html

< html >

< cabeça >

< título >

Teste o servidor da Web Python

</ título >

</ cabeça >

< corpo >

< Centro >

< img src='logo.jpeg' tudo='Imagem não encontrada'/>

< H2 estilo='cor verde'>Parabéns! Seu servidor web está funcionando com sucesso.</ H2 >

< p >Visita< para href='www.linuxhint.com'>LinuxHint.com</ para >para mais tutoriais em Python</ p >

</ Centro >

</ corpo >

</ html >

Exemplo-1: Execute o servidor da web no número da porta específica

Crie um arquivo python com o seguinte script para executar o servidor da web na porta 8008. http.server módulo foi importado para executar o servidor web, e o SocketServer módulo foi importado para lidar com a solicitação HTTP proveniente da porta 8080. Um objeto chamado Handler foi criado para lidar com as solicitações HTTP. para sempre() função é chamada para executar o servidor web. Nenhuma condição de encerramento foi adicionada ao script. Portanto, o script irá gerar um erro quando o usuário tentar parar o servidor.

# Módulo de servidor de importação

importarhttp.servidor

# Import SocketServer module

importarsocketserver


# Defina o número da porta

porta= 8080

# Criar objeto para lidar com solicitações HTTP

Handler=http.servidor.SimpleHTTPRequestHandler


# Execute o servidor para sempre para lidar com as solicitações HTTP

comsocketserver.TCPServer(('',porta),Handler) Comohttpd:

imprimir('Servidor Web está sendo executado em http: // localhost:% s'%porta)

httpd.serve_forever()

Saída

A seguinte saída aparecerá após a execução do script acima.


A lista de arquivos e pasta do local do script será exibida se a seguinte URL for executada a partir do navegador.

http: // localhost: 8080

Se o usuário pressionar CTRL + C no terminal ou pressionar o botão Parar no editor PyCharm, a seguinte mensagem de erro será exibida. Este problema foi resolvido no próximo exemplo deste tutorial.

Exemplo-2: execute o servidor da web com o número da porta definido pela linha de comando

Crie um arquivo python com o seguinte script para executar um servidor da web em uma porta específica se o argumento da linha de comando fornecer o número da porta; caso contrário, 5000 será usado como a porta padrão. sys módulo foi importado no script para ler os valores dos argumentos da linha de comandos. tentar exceto bloco foi adicionado no script para lidar com o erro quando o usuário tenta parar o servidor. Se a exceção KeyboardInterrupt aparecer após a execução do servidor, o fechar() função será chamada para parar o servidor web.

# Módulo de servidor de importação

importarhttp.servidor

# Import SocketServer module

importarsocketserver

# Módulo de importação sys

importar sys


Experimente:

# Defina o número da porta

E se sys.argv[1:]:

porta= int(sys.argv[1])

outro:

porta= 5000

# Defina o endereço IP

endereço do servidor= ('127.0.0.1',porta)

# Criar objeto para lidar com solicitações HTTP

Handler=http.servidor.SimpleHTTPRequestHandler


# Execute o servidor web para sempre para lidar com as solicitações HTTP

comsocketserver.TCPServer(('',porta),Handler) Comohttpd:

imprimir('Servidor Web está sendo executado em http: // localhost:% s'%porta)

httpd.serve_forever()

# Parou o servidor

exceto KeyboardInterrupt:

httpd.server_close()

imprimir('O servidor está parado.')

Saída

A seguinte saída aparecerá após a execução do script acima sem o valor do argumento da linha de comando.

A saída a seguir aparecerá se você executar o arquivo HTML criado na etapa anterior no servidor da web.

Abra a caixa de diálogo de configuração no menu Executar do editor PyCharm para definir o valor do argumento da linha de comando. O campo Parâmetros é usado para definir o argumento da linha de comando e 3000 é definido aqui como o valor do argumento.

A saída a seguir aparecerá se você executar o script novamente após definir o valor do argumento.

Exemplo-3: execute o servidor da web com o arquivo HTML

Crie um arquivo python com o seguinte script para executar o servidor da web, definindo o arquivo HTML para o URL base. O nome do host e o número da porta foram definidos no início do script. PythonServer classe foi definida no script para exibir o arquivo HTML no navegador quando o servidor da web começa a ser executado.

# Importe o módulo do servidor

importarhttp.servidor


# Defina o nome do host

HOSPEDEIRO= 'localhost'

# Defina o número da porta

PORTA= 4000


# Defina a classe para exibir a página de índice do servidor web

classePythonServer(http.servidor.SimpleHTTPRequestHandler):

defdo_GET(auto):

E se auto.caminho == '/':

auto.caminho = 'testHTML.html'

Retornahttp.servidor.SimpleHTTPRequestHandler.do_GET(auto)


# Declara o objeto da classe

servidor web=http.servidor.HTTPServer((HOSPEDEIRO,PORTA),PythonServer)


# Imprima o URL do servidor web

imprimir('Servidor iniciado http: //% s:% s'%(HOSPEDEIRO,PORTA))


Experimente:

# Execute o servidor web

servidor web.serve_forever()

exceto KeyboardInterrupt:

# Pare o servidor web

servidor web.server_close()

imprimir('O servidor está parado.')

Saída

A seguinte saída aparecerá executando o script acima.

A página a seguir aparecerá no navegador se o URL base do navegador do servidor da web for executado.

Conclusão

As diferentes maneiras de implementar servidores web usando http. servidor O módulo foi mostrado neste tutorial para ajudar os usuários de Python a criar um servidor da Web simples em Python.