python

Local server o servidor HTTP simple en Python 3

Introducción

Con la llegada de Python 3 algunas cosas cambiaron.

Por ejemplo, hace tiempo podíamos configurar un servidor HTTP simple en Python con el siguiente comando (al menos en la versión 2):

python -m SimpleHTTPServer

Pero… ¿cómo lo hacemos en Python 3? veamos cómo configurar un servidor HTTP simple en Python 3 para llamarlo desde la terminal.

También vamos a ver cómo ejecutar scripts de Python en la web.

Nota: si quieres usar Python para hacer aplicaciones web mejor utiliza Django.

Configurar servidor HTTP simple en Python 3

Primero debemos tener instalado Python correctamente y agregarlo a la variable PATH del sistema. Aquí un tutorial.

Luego abrimos la terminal y nos situamos en la carpeta que vamos a servir con nuestro server HTTP en Python 3. Hay que tener cuidado porque esta carpeta estará expuesta en el servidor.

En mi caso compartiré esta carpeta llamada expuesta, dentro de ella hay unas imágenes y un archivo zip:

Ahora en la terminal navego hacia ella y ejecuto lo siguiente:

python -m http.server 8081

Lo que hará que el servidor escuche en el puerto 8081. Por defecto escucha en el 8000.

Justo como se ve en la imagen:

Servir carpeta en servidor HTTP simple en Python 3

Ahora puedo navegar a localhost en dicho puerto y podré ver todo el contenido a través de mi navegador

Ver contenido de servidor HTTP a través del navegador

Hay una cosa interesante y es que si pongo un script de Python esperando a que se ejecute, eso no pasa. En su lugar, se muestra el código fuente.

Por ejemplo si tengo este script…

print ("Content-type:text/html\n\n")
print ('<html>')
print ('<head>')
print ('<title>Servidor HTTP simple en Python 3</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hola mundo. ¿Saben cuánto es 5 +5?</h2>')
print ('<h2>Es {}</h2>'.format(5 + 5))
print ('</body>')
print ('</html>')

y navego a él…

Código fuente mostrado en lugar de ser ejecutado

Vemos que el código fuente se muestra y no se ejecuta. Para poder ejecutar código de Python necesitamos algunas configuraciones adicionales.

Ejecutar servidor HTTP simple en Python 3 y ejecutar scripts

No deberíamos ejecutar scripts largos de esta manera, ya que es un poco complicado escribir rutas, conexiones y bla bla. En su lugar recomiendo Flask.

Pero si queremos jugar un poco o probar por nosotros, sigamos adelante 😉

Modo CGI

Para que los scripts sean ejecutados debemos hacer 2 cosas. La primera es pasar la opción –cgi al ejecutar el servidor HTTP en Python 3.

La segunda es crear un directorio llamado cgi-bin y dentro colocar nuestros scripts para que sean ejecutados a través del server de Python.

Entonces creamos la carpeta y dentro colocamos el script:

Como vemos, está nuestra carpeta padre llamada expuesta. Dentro de ella creamos una que se llama cgi-bin y dentro de ésta última guardamos los scripts de Python que queremos ejecutar. En el ejemplo, nuestro script se llama hola.py

Ejecutando scripts de Python a través de CGI

Ahora lo único que queda es ejecutar nuestro servidor con el siguiente comando (lo mismo de arriba pero con la opción CGI):

python -m http.server --cgi 8081

Navegamos a localhost:8081/cgi-bin/hola.py y vemos que el script se ha ejecutado:

Script ejecutado a través de servidor HTTP

En caso de que no funcione, puedes agregar la interfaz en donde escuchar. Esto normalmente pasa en Windows, así que el servidor sería ejecutado de la siguiente forma:

python -m http.server --bind localhost --cgi 8081

No olvides que en tu terminal debes estar dentro de la carpeta padre.

Recuerda que dicha carpeta puede estar en cualquier lugar y tener cualquier nombre.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.