Reiniciar el servidor de pruebas y refrescar el navegador
http://localhost:8000
$ python app.py
Agregar el resto de los campos del incendio
en detail.html
Incendio de {{ object['COMUNIDAD'].decode('UTF-8') }}
En la comunidad {{ object['COMUNIDAD'].decode('UTF-8') }},
provincia {{ object['PROVINCIA'].decode('UTF-8') }},
comarca {{ object['COMARCA'].decode('UTF-8') }},
municipio {{ object['MUNICIPIO'].decode('UTF-8') }} se quemó una
superficie forestal de {{ object['SUPQUEMADA'] }}.
Hubieron {{ object['MUERTOS'] }} muertos y {{ object['HERIDOS'] }}
heridos. Se detectó en la fecha {{ object['FECHA'] }}. Se pudo
controlar en {{ object['TIME_CTRL'] }} minutos y extinguir
en {{ object['TIME_EXT'] }} minutos. La causa del incendio
fue {{ object['CAUSA'].decode('UTF-8') }}. En la extinción
del incendio participaron {{ object['PERSONAL'] }} personas,
{{ object['PESADOS'] }} vehiculos pesados y {{ object['AEREOS'] }}
medios aereos.
¡Hola Javascript!
Ahora vamos a colocar un mapa con los incendios usando una libreria de Javascript llamada Leaflet. Primero hay que importarla en el archivo "index.html"
Crear un elemento HTML para el mapa
... inicio del body ...
... aca esta la table ...
Y usar Leaflet para centrarlo en España
Inicializamos el mapa con las coordenadas de España y nivel de zoom
Agregamos la capa de tiles desde mapquest, que utiliza open street map.
Se le pasa la URL para las imagenes de tiles, el nivel máximo de zoom (18) y el texto sobre de donde vienen los mapas.
Le agregamos el layer al elemento del mapa
Transformar los datos del CSV que tenemos a GeoJSON
GeoJSON es un formato para guardar estructuras de datos geograficos junto a información no geografica
Agregar una ventanita popup que muestre información sobre el incendio
Ahora publicaremos nuestra aplicación de datos en Internet. Vamos a usar Frozen Flask para generar archivos estaticos desde nuestra app.
Frozen Flask
una libreria de Python que crea una página estatica por cada página que hicimos.
Usar pip para instalar Frozen Flask
$ pip install Frozen-Flask
Crear un archivo freeze.py
en el mismo directorio que app.py
from flask_frozen import Freezer
from app import app
freezer = Freezer(app)
if __name__ == '__main__':
freezer.freeze()
Correrlo desde linea de comandos
Se creará un directorio build con un monton de archivos estaticos.
$ python freeze.py
Usar el navegador
para abrir uno de los archivos generados en build. Lo único que paso a estaticos fueron las páginas de "index.html". Tenemos que editar freeze.py para incluir "detail.html"
from flask_frozen import Freezer
from app import app, csv_list
freezer = Freezer(app)
@freezer.register_generator
def detail():
for row in csv_list:
yield {'number': row['IDPIF']}
if __name__ == '__main__':
freezer.freeze()
Correrlo desde linea de comandos
Ahora se generan muchos más archivos en build.
$ python freeze.py
¡Hola GIT!
GitHub Pages hostea páginas estaticas de forma gratuita
En Windows: http://windows.github.com
En Mac: http://mac.github.com
En Linux: apt-get install git
Inicializemos GIT localmente
En linea de comandos
$ git init
$ git add .
$ git commit -m "Agregamos todo el proyecto a GIT"