Cómo usar Python SimpleHttpserver

Cómo usar Python SimpleHttpserver

La tarea principal del servidor web es manejar las solicitudes HTTP del cliente. Espera las solicitudes HTTP que provienen de la dirección IP y el número de puerto en particular, maneja la solicitud y devuelve la respuesta del cliente hacia atrás. Python usa el Simplehttpserver Módulo para crear un servidor web de forma instantánea y fácil de servir el contenido del archivo desde el servidor. Se puede usar para compartir archivos también. Para esto, debe habilitar este módulo con la ubicación de los archivos compartibles. Este módulo viene con el intérprete de Python. No necesitas instalarlo. Dado que este módulo se fusiona con el http.servidor Módulo en Python3, así que tienes que correr http.servidor Para ejecutar el servidor web en Python3. Cómo se puede usar el servidor web para manejar la solicitud HTTP y compartir archivos, se han mostrado en este tutorial.

Ejecute el servidor web desde el terminal

Ejecute el siguiente comando para ejecutar el servidor web desde el terminal. Si no se define ningún número de puerto en el comando, el servidor web comenzará a 8000 puertos por defecto.

$ python3 -m http.servidor

La siguiente salida aparecerá si el servidor web se inicia correctamente. Ctrl+C se presiona para detener el servidor.


Ejecute el siguiente comando para iniciar el servidor web en el puerto 8080.

$ python3 -m http.servidor 8080

La siguiente salida aparecerá si el servidor web se inicia en el puerto 8080.

Ejecute el servidor web usando el script de Python

Ejecute los siguientes comandos para crear una carpeta llamada web Y ve a la carpeta. Todos los archivos de script y los archivos HTML de este tutorial se crearán dentro de esta carpeta.

$ mkdir web
$ CD Web

Crear un archivo html llamado testhtml.html dentro de web carpeta con el siguiente script. Este archivo se servirá desde el servidor web más tarde.

testhtml.html



<br>Prueba el servidor web de Python<br>




Felicitación! Su servidor web se ejecuta correctamente.


Visita Linuxhint.comunicarse Para más tutoriales sobre Python




Ejemplo-1: ejecute el servidor web en el número de puerto específico

Cree un archivo de Python con el siguiente script para ejecutar el servidor web en el puerto 8008. http.servidor Se ha importado el módulo para ejecutar el servidor web y el Servidor de enchufes Se ha importado el módulo para manejar la solicitud HTTP proveniente del puerto 8080. Un objeto llamado Manipulador se ha creado para manejar las solicitudes HTTP. para siempre() Se llama a la función para ejecutar el servidor web. No se ha agregado una condición de terminación al script. Entonces, el script generará un error cuando el usuario intente detener el servidor.

# Importar módulo de servidor
importar http.servidor
# Importar el módulo de servidor de enchufes
Importar SocketServer
# Establecer el número de puerto
Puerto = 8080
# Crear objeto para manejar las solicitudes HTTP
Controlador = http.servidor.Simplehttprequesthandler
# Ejecute el servidor para siempre para manejar las solicitudes HTTP
con SocketServer.TCPServer (("", puerto), manejador) como httpd:
imprimir ("El servidor web se ejecuta en http: // localhost: %s" %puerto)
httpd.Serv_forever ()

Producción

La siguiente salida aparecerá después de ejecutar el script anterior.


La lista de los archivos y la carpeta de la ubicación del script se mostrará si la siguiente URL se ejecuta desde el navegador.

http: // localhost: 8080

Si el usuario presiona Ctrl+C desde el terminal o presiona el botón Detener desde el editor PyCharm, se mostrará el siguiente mensaje de error. Este problema se ha resuelto en el próximo ejemplo de este tutorial.

Ejemplo-2: ejecute el servidor web con el número de puerto definido por línea de comandos

Cree un archivo Python con el siguiente script para ejecutar un servidor web en el puerto particular si el argumento de la línea de comandos proporciona el número de puerto; de lo contrario, se utilizarán 5000 como puerto predeterminado. sys El módulo se ha importado en el script para leer los valores de argumento de la línea de comandos. try-excepto El bloque se ha agregado en el script para manejar el error cuando el usuario intenta detener el servidor. Si aparece la excepción de Interrupción de teclado después de ejecutar el servidor, entonces el cerca() se llamará a la función para detener el servidor web.

# Importar módulo de servidor
importar http.servidor
# Importar el módulo de servidor de enchufes
Importar SocketServer
# Módulo de importación SYS
Sys de importación
intentar:
# Establecer el número de puerto
Si sys.Argv [1:]:
puerto = int (sys.argv [1])
demás:
puerto = 5000
# Establecer la dirección IP
server_address = ('127.0.0.1 ', puerto)
# Crear objeto para manejar las solicitudes HTTP
Controlador = http.servidor.Simplehttprequesthandler
# Ejecute el servidor web para siempre para manejar las solicitudes HTTP
con SocketServer.TCPServer (("", puerto), manejador) como httpd:
imprimir ("El servidor web se ejecuta en http: // localhost: %s" %puerto)
httpd.Serv_forever ()
# Detener el servidor
Excepto que el teclado segrine:
httpd.server_close ()
imprimir ("El servidor se detiene.")

Producción

El siguiente resultado aparecerá después de ejecutar el script anterior sin valor de argumento de línea de comandos.

Aparecerá la siguiente salida si ejecuta el archivo HTML que se crea en el paso anterior desde el servidor web.

Abra el cuadro de diálogo de configuración en el menú Ejecutar del editor PyCharm para establecer el valor de argumento de la línea de comandos. El campo de parámetros se usa para establecer el argumento de la línea de comandos, y 3000 se establece aquí como el valor del argumento.

La siguiente salida aparecerá si ejecuta el script nuevamente después de configurar el valor del argumento.

Ejemplo-3: ejecute el servidor web con el archivo HTML

Cree un archivo Python con el siguiente script para ejecutar el servidor web definiendo el archivo HTML para la URL base. El nombre de host y el número de puerto se han definido al comienzo del script. Pitonse La clase se ha definido en el script para mostrar el archivo HTML en el navegador cuando el servidor web comienza a ejecutar.

# Importar el módulo del servidor
importar http.servidor
# Establecer el nombre de host
Host = "localhost"
# Establecer el número de puerto
Puerto = 4000
# Definir clase para mostrar la página de índice del servidor web
Clase Pythonserver (HTTP.servidor.Simplehttprequesthandler):
Def do_get (self):
Si uno mismo.ruta == '/':
ser.ruta = 'testHtml.html '
devolver http.servidor.Simplehttprequesthandler.do_get (self)
# Declarar objeto de la clase
WebServer = http.servidor.Httpserver ((host, puerto), pythonserver)
# Imprima la URL del servidor web
Imprimir ("Servidor iniciado http: //%s:%s"%(host, puerto))
intentar:
# Ejecute el servidor web
Servidor web.Serv_forever ()
Excepto que el teclado segrine:
# Detenga el servidor web
Servidor web.server_close ()
imprimir ("El servidor se detiene.")

Producción

La siguiente salida aparecerá ejecutando el script anterior.

La siguiente página aparecerá en el navegador si la URL base del navegador del servidor web se ejecuta.

Conclusión

Las diferentes formas de implementar servidores web utilizando http. servidor El módulo ha demostrado en este tutorial para ayudar a los usuarios de Python a crear un servidor web simple en Python.