[TUTORIAL] Flask I: Basico

Como tengo algunos tiempo libres de descanso (de hacer proyectos o viciar un rato), me he decidido a escribir este articulo (o quizá artículos) sobre el desarrollo web con Flask (Python). No me voy a detener a explicar que es Flask, eso ya lo explican en Hipertextual y lo explican muchísimo mejor que yo.

Si no tienes conocimientos de Python y HTML5 lo mejor es que no continúes y primero leas la documentación y manuales de Python y HTML5

Instalación

A este punto (sea el sistema operativo que sea) ya deberíamos tener instalado Python, así que solo nos quedaría instalar Flask

$ sudo pip install Flask

Fácil, ¿no?

Hola mundo

En Flask podemos crear el clásico «Hola Mundo» de la siguiente forma:

flask1

Solo guardamos nuestro código como hello.py y lo ejecutamos

$ python hello.py
* Running on http://localhost:5000/

Ahora nuestra aplicación se esta ejecutando en http://localhost:5000/

Muy fácil, ¿no?

Un blog sencillo

Paso 0: Creando las carpetas

Antes de empezar, necesitamos las siguientes carpetas para nuestra aplicación:

carpetas

La carpeta Proyecto puede tener el nombre que quieras, es solo la carpeta donde tendrás tu aplicación. En la carpeta static estarán los ficheros disponibles a los usuarios via HTTP. Ese es el lugar donde debes colocar tus ficheros css y js. En la carpeta templates es donde estarán las platillas (el html5) de tu aplicación.

Paso I: Esquema de base de datos

Primero crearemos el esquema de base de datos. Para esta aplicación solo necesitaremos una base de datos. Solo introduce el siguiente código en un fichero de nombre «schema.sql» en la carpeta Proyecto.

esquema

Este esquema conciste en una solo tabla llamada entradas y cada fila de esta tabla tiene un ID, un titulo y un texto. Este ID es un número entero incrementando de forma automática y una clave principal, los otros dos son cadenas.

Paso II: Código inicial de la aplicación

Ahora que tenemos el esquema podemos crear el módulo de aplicación. Llamémoslo flaskr.py, el cual tiene que estar dentro de la carpeta Proyecto. Para empezar vamos a añadir los imports necesarios, así como la sección de configuración. En pequeñas aplicaciones podemos dejar la configuración directamente en el módulo que vamos a hacer. Sin embargo, lo mejor y mas correcto sería la creación de un fichero de configuración .ini o .py, cargarlo e importar los valores desde allí.

En el fichero flaskr.py:

py

El secret_key es necesario para mantener las sesiones seguras. Elije sabiamente esta clave. El flag debug activa o desactiva el depurador interactivo. ¡Nunca dejes el modo de depuración activado en un sistema de producción, ya que permitirá a los usuarios ejecutar código en tu servidor!

Ahora podemos crear nuestra aplicación e iniciar con la configuración en flaskr.py :

app

También vamos a añadir un método para conectarse fácilmente a la base de datos especificada. Esto se puede utilizar para abrir una conexión bajo petición. Esto será muy útil más adelante.

table4

Finalmente añadimos una línea al final del archivo que ejecutara el servidor si queremos ejecutar el archivo como una aplicación independiente:

table5

Con eso debes ser capaz de poner en marcha la aplicación sin problemas. Ahora usamos el siguiente comando:

$ python flaskr.py

Veras un mensaje que indica que el servidor se ha iniciado junto con la URL.

Si accedemos a la URL nos dará un error 404, ya que no tenemos una web todavía. Pero nos centraremos en eso un poco más tarde. Primero debemos conseguir el funcionamiento de la base de datos.

Paso III: Creación de la base de datos

6 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Faustino dijo

    Hola, gracias por el articulo. ¿Que opinas sobre tener todas las routes juntas al estilo Django?. ¿Que ventajas hay en tener el route por cada funncion al estilo de Express, Flask o Bottle?

    1.    Ivan Molina Rebolledo dijo

      No he probado Django (Matame si quieres) pero podría decir que es por comodidad de quien programe. (Corriganme si me equivoco)

  2.   Ivan Molina Rebolledo dijo

    El articulo no esta terminado!! Quien se atrevió a postearlo?? D:

  3.   Guille dijo

    Se escapan errores ortográficos como «conciste», el mismo autor en su comentario dice «Corriganme», sería bueno tener un corrector ortográfico instalado y mirar las rayas rojas que salen bajo algunas palabras. También es cierto que no ha terminado de escribirlo y por tanto de repasarlo.

  4.   erm3nda dijo

    Creo que no soy el único que se ha quedado como un gilipollas buscando el botón siguiente… para pasar de página «o algo».

  5.   Linug dijo

    Ojala vengan más, muy buen trabajo