- 🐘 PostgreSQL
- 🍃 MongoDB
- ⚗ Flask
- Instalar requerimientos:
pip3 install -r requirements.txt
- Iniciar las bases de datos
- Iniciar la aplicación:
export FLASK_APP=flaskr
python3 -m flask run
Nuestra aplicación correrá aquí y al iniciarla verás algunas tarjetas como la de la figura. Cada una de ellas representa una consulta a nuestras bases de datos.
Cada tarjeta contiene:
- un nombre,
- una descripción,
- una base de datos
- y una consulta.
Toda esta información es posible modificarla en el archivo queries, el que se explicará más adelante.
Adicionalmente, cada tarjeta contiene un botón play que desplegará una representación de la consulta. Por defecto, la aplicación mostrara una tabla y un JSON para cada consulta en postgreSQL y mongoDB, respectivamente.
Para estar más familiarizado con Flask, puedes encontrar aquí la información necesaria.
El archivo principal es flaskr.py, en él está toda la lógica de esta pequeña aplicación. Existen tres rutas principales y funciones asociadas a ellas.
Primero, en la raíz de la aplicación encontramos la función home(). En ella se leen todas las consultas del archivo queries y se almacenan en la variable pairs. Estos datos serán visualizados en templates/file.html.
@app.route("/")
def home():
with open(QUERIES_FILENAME, 'r') as queries_file:
json_file = json.load(queries_file)
pairs = [(x["name"], x["database"], x["description"], x["query"]) for x in json_file]
return render_template('file.html', results = pairs)
Luego, las funciones mongo() y postgres() definen el comportamiento de las rutas con los mismos nombres. Estas funciones son llamadas al presionar play en una consulta y se encargan de pedir los datos necesarios para ella. Cada función llama a un archivo HTML y le entrega estos datos en la variable results.
En la carpeta static se almacenan los archivos CSS, JavaScript y las imágenes de la aplicación. Para mejorar el estilo o agregar funcionalidades con JavaScript, puedes modificar los archivos de este directorio.
En la carpeta templates se almacenan todos los archivos HTML de la aplicación. Esta aplicación Flask funciona con Jinja2, para aprender más sobre (cómo se llama esto? Jinja2), puedes leer su documentación aquí. Para modificar la estructura de la visualización de los resultados de una consulta, es posible editar los archivos templates/mongo.html y templates/postgres.html.
Por último, en el archivo queries se encuentran todas las consultas que se muestran en la aplicación. Cada consulta tiene el formato:
{
"name": "Consulta 1",
"database": "postgres",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
"query": "SELECT * FROM mytable;"
}