Blog
Ya sea para desarrollar una pagina web, para compartir archivos o para probar plantillas, el software de los servidores web generalmente es pesado y de compleja configuración (Apache, NGINX, entre otros), pero Python cuenta con un módulo para desplegar servidores HTTP, ligero y de fácil configuración, que pueden ser utilizado para cualquiera de estos fines.
¿Que es un servidor web?
Un servidor web es aquel software que utiliza algún protocolo de transferencia de datos para servir o despachar contenido a sus clientes. Se encargan de mediar entre las solicitudes de los usuarios y los archivos que contienen la información solicitada en el servidor. Generalmente utilizan el protocolo HTTP para enviar el contenido.
Servidor HTTP con Python
La librería estándar de Python cuenta con un módulo para trabajar con el protocolo HTTP (Documentación). Para iniciar el servidor, se debe crear un directorio donde estarán alojados los archivos con los que trabajará el servidor.
Creamos una carpeta en nuestro equipo con el nombre que se desee (en este caso se llamará dir) y dentro de ella vamos a alojar los archivos con los que el servidor trabajará.
$ mkdir dir && cd dir $ touch index.html
Luego, abrimos el archivo “index.html” con un editor de texto y agregamos una plantilla sencilla de HTML para que sea mostrada:
<!DOCTYPE html> <html> <head> <title>Pagina de prueba</title> </head> <body> <h1>Texto de prueba</h1> </body> </html>
Luego de esto, se procede a iniciar el servidor con Python:
$ sudo python3 -m http.server [puerto]
Si estamos en Windows, para activar el servidor se usa el comando de la siguiente forma:
python -m SimpleHTTPServer [puerto]
Es recomendable utilizar el puerto 80 o el puerto 8080 ya que generalmente están desocupados.
Luego de ejecutarlo, la terminal debe decir “Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) …”. Luego abrimos el navegador e ingresamos en la barra del navegador 127.0.0.1 (si se ingresó un puerto distinto del 80, hay que especificarlo en la barra de la forma 127.0.0.1:puerto).
Se puede acceder desde otros dispositivos (si están en la misma red) ingresando en el explorador la dirección IP del equipo donde se esté ejecutando el servidor.
Ejecución de código Python en el servidor
Para ejecutar código Python en el servidor, es necesaria la utilización de algún framework para desarrollo web. En este caso, utilizaremos Flask.
Para la instalación de Flask, utilizaremos pip.
$ pip3 install flask
Luego de esto, para verificar que la instalación haya culminado de forma correcta, abrimos una terminal, iniciamos el interprete de Python e importamos Flask.
$ python3
>>> import flask
Si el interprete no arroja ningún error, entonces Flask fue instalado de forma correcta.
Creando el servidor con Flask
Creamos un archivo .py nuevo con nuestro IDE o editor de texto preferido, y en él, ingresamos el siguiente código:
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return ("Prueba de Flask") if __name__ == "__main__": app.run()
Guardamos el archivo (en este caso lo llamé server.py) y procedemos a ejecutarlo desde la terminal.
$ python3 server.py
Al ejecutarlo, se debe obtener una salida similar a la siguiente:
Ya el servidor estará ejecutandose. Abrimos desde el navegador la dirección indicada en la ultima linea (http://127.0.0.1:5000), y se debería mostrar lo siguiente.
Luego de esto ya estará listo el servidor HTTP creado con Python. Cabe destacar que Flask es un framework de desarrollo web sumamente útil y ligero, con incontables utilidades que van mas allá de desplegar un servidor web como el que hicimos.
➡ Te invitamos a realizar el Curso de Python para Principiantes: