Python + Web sin frameworks.

ad-

Administrator
Mensajes
47
Puntos de reacción
0
Puntos
0
Aquí les traigo otro pequeño tutorial (similar a este ) de iniciación a Python+Web que espero le sirva a alguien.
Se trata de desarrollar una aplicación web simple usando Python. De sobra sabemos que existen varios frameworks para desarrollo web usando Python, pero ese no es el sentido del tutorial, sino mostrar que existen variantes a los archiconocidos frameworks que nos pueden ser de utilidad en algunas ocasiones, sobretodo si lo que necesitamos es algo simple, ligero y rápido.
Bueno, manos a la obra. Lo primero que debemos hacer es crear nuestra carpeta de proyecto.

Código:
$ mkdir webpython-test

Luego creamos la carpeta donde se ejecutará el archivo .py que ejecutaremos en el navegador más adelante.

Código:
$ mkdir webpython-test/cgi-bin

el nombre de la carpeta ‘cgi-bin’ no es opcional, tiene que ser ese nombre por obligación pues el servidor web buscará en esa carpeta los archivos ejecutables.

A continuación vamos a crear en la raíz de nuestra carpeta de proyecto la página web que mostrará el servidor web de Python.

Código:
$ cd webpython-test
$ nano index.html

y creamos una página web sencilla con dos edits y un botón.
La acción del botón Mostrar definida en esta línea <form method="POST" action="/cgi-bin/mostrar.py"> llamará al script mostrar.py que crearemos a continuación.

Código:
<!DOCTYPE html>
<html lang="en-US">

<TITLE>Ejemplo Web+Python</TITLE>
<body>
<meta charset="utf-8">

<h1>Ejemplo Web+Python</h1>
<h2>Introduzca su Nombre y Apellidos</h2>
<form method="POST" action="/cgi-bin/mostrar.py">
  Nombre:<br>
  <input type="text" name="edit_nombre"><br>
  <br>
  Apellidos:<br>
  <input type="text" name="edit_apellidos"><br>
  <input type="submit" value="Mostrar">
</form> 
</body>
</html>



Ahora vamos a crear el script de Python que va a ejecutarse cuando se realice una acción en la página web. Para ello creamos un archivo dentro de la carpeta cgi-bin.

Código:
$ cd cgi-bin
$ nano mostrar.py

Le damos permisos de ejecución.

Código:
$ sudo chmod 755 mostrar.py

Y agregamos el siguiente código dentro.

Código:
#!/usr/bin/python3.6

#importamos y activamos los módulos 'cgi' y 'cgitb' para depuración.
import cgi
import cgitb
cgitb.enable()


def main():

	#declaramos el tipo de contenido a mostrar. estas dos líneas son obligatorias.
	#----
	print("Content-Type: text/html")
	print()
	#----

	print('<meta charset="utf-8">')

	#declaramos un objeto con el contenido del formulario de la web 'index.html'.
	form = cgi.FieldStorage()

	#declaramos dos variables con el contenido de los edits del formulario de 'index.html'.
	nombre = form["edit_nombre"].value
	apellidos = form["edit_apellidos"].value

	#mostramos el contenido de las variables en la web usando un simple 'print'
	print("<H1>Felicidades", nombre, apellidos + ", haz ejecutado un script Python en el navegador!!</H1>")

if __name__ == '__main__':
	main()

Ya solo queda echar a correr el servidor web con soporte para CGI usando el intérprete de Python. Para ello, ejecutamos el siguien comando desde la carpeta raíz del proyecto.

Código:
$ cd ..
$ python -m http.server 8000 -b localhost --cgi

El parámetro -m http.server le dice al intérprete que use el módulo http.server para crear el servidor web y que lo ponga a escuchar por el puerto 8000. Los parámetros -b localhost y –cgi bindean el servidor web a una ip y activan el módulo cgi respectivamente.

Ya solo queda acceder en nuestro navegador a http://localhost:8000 y listo!


Al principio puede parecer complejo por la cantidad de pasos y explicaciones pero es bastante sencillo en realidad.

TL;DR:
  • crear pagina web
  • crear carpeta cgi-bin con script Python dentro
  • dar permisos de ejecucion al script
  • ejecutar comando para crear servidor web
  • acceder a la página mediante el navegador
 
Atrás
Arriba