OpenWebinars

Frameworks

Crea una App meteorológica con Flask

Vamos hacer una aplicación web con el microframework flask que va a obtener información de la temperatura de localidades de la provincia de Sevilla y mostrará la temperatura máxima y la mínima.

José Domingo Muñoz

José Domingo Muñoz

Experto en desarrollo

Lectura 2 minutos

Publicado el 2 de febrero de 2018

Compartir

Vamos hacer una aplicación web con el microframework Flask que va a obtener información de la temperatura de localidades de la provincia de Sevilla y mostrará la temperatura máxima y la mínima.

Se sacara la información de la página AEMET.

capturaUno

Esta página puede mostrar la información de predicción de tempertura en un archivo xml. al abrir el fichero se puede ver en la URL que termina en un código con cada uno de los municipios.

capturaDos

La idea es poder leer este fichero xml y buscar lo que nos interesa que es la temperatura máxima y mínima y poder mostrarla en nuestra aplicación.

¿Qué se necesita?

Un fichero con todas las localidades de Sevilla con su nombre y lo que realmente nos interesa, además del nombre, son los últimos cinco caracteres del atributo value donde esta el código que nos va a permitir leer la página xml de la agencia de meteorología y asi poder tener la información de esa localidad.

capturaTres

Por lo tanto este fichero lo vamos a leer y nos va a permitir crear una lista con todas las localidades y con sus códigos. Con el código de cada localidad se podrá leer el fichero xml que me da la página web de la agencia de meteorología para leer la temperatura máxima y la mínima.

Se necesita una librería de Python para leer archivos xml, existen muchas pero en este caso se usará:

from lxml import etree.

En la página principal se leera el archivo xml (sevilla.xml), se buscara todos los municipios y se generara una página HTML desde la plantilla inicio.html y le enviare como variable una lista con todos los municipios.

capturaCuatro

la plantilla inicio.html se extiende de una plantilla base donde esta toda la estructura de la página web, la cual tiene:

  • Como título: Temperaturas.
  • Contenido: Una lista donde se van a recorrer los municipios y se colocará un enlace con los 5 últimos caracteres del atributo donde está guardado el código. El enlace va a ser el nombre de la localidad.

capturaCinco

Probando la aplicación

Corremos la aplicación por la terminal con el comando:

$ python3 app.py

En la primera página se puede ver la estructura completa porque se ha generado de una plantilla base. También se puede ver el html generado y se tiene la lista de todas las localidades de la provincia de Sevilla.

capturaCinco

Si pulsamos en cualquiera de los enlaces nos llevará a la siguiente ruta de nuestro programa que es una ruta dinámica que lo único que espera es el código de la localidad.

captura siete

Aquí se leerá el documento xml desde la url de la agencia de meteorología que siempre es el mismo y lo único que cambia es el código que hemos recibido al acceder a esta ruta. Si por lo que sea no puedo acceder devuelvo un 404.

Una vez leido el xml voy a buscar el nombre de la localidad, la temperatura máxima y la temperatura mínima y genero una página html con la plantilla temperaturas.html y le mando: el nombre, la temperatura máxima y la mínima.

La plantilla de temperaturas.html es simple y lo que hace es mostrar esa información.

capturaOcho

Si volvemos a nuestra página y buscamos la ciudad de sevilla nos dará la siguiente información:

capturaNueve

Artículo desarrollado a partir del vídeo por Ana Gabriela Durán.

Compartir este post

También te puede interesar

Crea tu primera aplicación en Flask
Blog

Crea tu primera aplicación en Flask

Si quieres empezar a programar con el microframework Flask, crea tu primera aplicación en Flask desde cero para conocerlo a fondo.

José Domingo Muñoz
Icono de la tecnología
Curso

Flask Mini-Framework Python

Intermedio
6 h. y 49 min.

Aprende a crear un sitio web con Flask, el mini framework web de Python, perfecto para aquellos que...

José Domingo Muñoz
4.4