# Python - Flask - Mongo

Flask es un framework web ligero y flexible escrito en Python que se utiliza para construir aplicaciones web. Flask se clasifica como un "microframework" porque proporciona las herramientas esenciales para crear aplicaciones web, pero no impone una estructura o componentes específicos, lo que le da a los desarrolladores una gran flexibilidad y libertad para elegir las bibliotecas y herramientas que desean usar en sus proyectos.

Por otro lado MongoDB es una base de datos NoSQL de código abierto que se basa en un modelo de datos flexible y escalable, conocido como almacenamiento de documentos BSON. En lugar de tablas y filas como en las bases de datos relacionales, MongoDB almacena datos en documentos JSON similares a objetos, lo que permite una representación más natural de datos complejos. Es altamente escalable y puede manejar grandes volúmenes de datos, distribuyendo la carga a través de clústeres y ofreciendo replicación para la alta disponibilidad. MongoDB se utiliza ampliamente en aplicaciones web, móviles y proyectos que requieren una rápida iteración en el desarrollo y un almacenamiento ágil de datos no estructurados o semi-estructurados.

**Estructura del proyecto**

```
.
├── compose.yaml
├── app.Dockerfile
├── app
    ├── requirements.txt
    └── server.py
```

**Despliegue de la aplicación:**

Nos dirigimos al directorio que contiene los archivos necesarios para construir el contenedor:

<pre><code><strong>cd /root/stack/python/flask-mongo
</strong></code></pre>

Y levantamos la aplicación:

```
docker compose up -d
```

**Comandos útiles:**

Ver los contenedores que están corriendo:

```
docker compose ps
```

Detener y eliminar la aplicación:

```
docker compose down
```

Reconstruir la aplicación tras realizar cambios en el código:

```
docker compose --build -d
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ayuda.sitioshispanos.com/menu-principal/guias/servidor-de-aplicaciones/stacks-disponibles/python/python-flask-mongo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
