Aspectos básicos de Flask

Completado

Flask es un "micromarco" web de código abierto. Cuando los creadores usan el término "micromarco", quieren decir que el marco realizará las tareas necesarias de un marco web, pero que no incluye características avanzadas ni otros requisitos específicos que la aplicación debe seguir para funcionar correctamente. Este enfoque permite que Flask sea extremadamente flexible y perfecto para su uso como front-end para back-end o API existentes, como los servicios de Azure AI.

Al crear una aplicación web con cualquier marco, hay un par de conceptos básicos que necesitamos comprender: enrutamiento, métodos y plantillas. Vamos a explorar estos conceptos antes de escribir el código.

Respuesta a las solicitudes de usuario con rutas

Cuando un usuario usa una aplicación web, indica lo que quiere hacer, o la información que busca, examinando los distintos localizadores uniformes de recursos (o URL). Puede escribir una dirección directamente (por ejemplo, https://adventure-works.com) o seleccionar un vínculo o un botón que incluya la dirección URL adecuada. En un sitio de comercio electrónico podría tener direcciones URL que tengan un aspecto similar al siguiente:

  • https://adventure-works.com/ para la página principal
  • https://adventure-works.com/products/widget para obtener detalles sobre un widget
  • https://adventure-works.com/cart/buy para completar una compra

Como desarrolladores, en realidad no nos interesa la primera parte de la dirección URL o el dominio (adventure-works.com en nuestro ejemplo). Nuestra aplicación se pone en acción según lo que venga después del nombre de dominio, comenzando por /. La parte que aparece después del nombre de dominio es lo que se conoce como ruta.

Una ruta es el camino hacia una acción. De forma similar a pulsar un botón en una aplicación móvil, una ruta indica la acción que el usuario quiere realizar. Registraremos rutas diferentes en nuestra aplicación web para responder a las distintas solicitudes que admite la aplicación.

En nuestra aplicación, indicamos cómo deseamos responder a una solicitud de ruta determinada proporcionando una función. Una ruta es una asignación a una función. Cuando pensamos en la escritura de código en términos generales, este concepto es relativamente natural. Cuando deseamos realizar una acción determinada, llamamos a una función. ¡Pues eso es exactamente lo que harán nuestros usuarios! Lo que pasa es que lo hacen de forma ligeramente diferente, mediante el acceso a una ruta.

Métodos o verbos

Es posible acceder a las rutas de muchas maneras, a través de lo que se conoce como métodos o verbos (los dos términos significan lo mismo y se pueden usar indistintamente). La forma en que se obtiene acceso a la ruta proporciona contexto adicional sobre el estado de la solicitud del usuario y la acción que el usuario desea realizar.

Hay muchos métodos disponibles para crear una aplicación web, pero los dos más comunes (y los dos únicos en los que nos centraremos) son GET y POST. GET suele indicar que el usuario solicita información, mientras que POST indica que el usuario debe enviarnos algo y recibir una respuesta.

Nota:

Independientemente del verbo utilizado, la información siempre se puede devolver al usuario.

Un flujo de aplicación común que usa GET y POST gira en torno al uso de un formulario. Supongamos que creamos una aplicación en la que el usuario desea registrarse en una lista de distribución de correo:

  1. El usuario tiene acceso al formulario de registro a través de GET.
  2. El usuario completa el formulario y selecciona el botón de enviar.
  3. La información del formulario se envía de vuelta al servidor mediante POST.
  4. Se devuelve al usuario un mensaje que indica que el proceso se completó correctamente.

Como podría sospechar, el usuario no indica directamente el verbo que quiere usar, sino que esto lo controla la aplicación. Por lo general, si el usuario navega a una dirección URL directamente, ya sea escribiéndola o seleccionando un vínculo, accederá a la página mediante GET. Cuando selecciona un botón en un formulario, normalmente envía la información a través de POST.

Nota:

Estamos manteniendo esta conversación a un nivel relativamente alto, porque una explicación completa de los métodos quedaría fuera del ámbito de este módulo.

Plantillas

El lenguaje de marcado de hipertexto, o HTML, es el lenguaje que se usa para estructurar la información que se muestra en un explorador, mientras que las hojas de estilo CSS, o simplemente CSS, se usan para administrar el estilo y el diseño. Al crear una aplicación, la mayor parte del código HTML será estática, lo que significa que no cambiará. Sin embargo, para que nuestras páginas sean dinámicas, necesitamos la capacidad de colocar la información en una página HTML mediante programación. Prácticamente todos los marcos web cumplen con este requisito a través de plantillas.

Una plantilla le permite escribir el código HTML principal (o una plantilla) e indicar los marcadores de posición para la información dinámica. Probablemente, la sintaxis más común para los marcadores de posición es {{ }}. Jinja, el motor de plantillas para Flask, usa esta sintaxis.

<h1>Welcome, {{ name }}</h1>

En el ejemplo anterior, tenemos el código HTML de h1 (un encabezado) con el texto que deseamos mostrar. {{ name }} indica que deseamos mostrar una variable llamada name justo después del mensaje de bienvenida. Esta sintaxis nos permite escribir el código HTML con nuestros conocimientos actuales e insertar la información dinámica según sea necesario.

Comprobar los conocimientos

1.

¿En cuáles de los lenguajes siguientes es Flask un marco para la compilación de aplicaciones web?