Back-end con Mongodb
Mongo permite mayor flexibilidad en la estructura de las bases de datos, estos campos flexibles implican que el programador necesita validar si un campo está o no dentro del objeto de la colección para evitar errores al desplegar la página web. Agregar una nueva colección es mucho más fácil con PyMongo. En el siguiente link, se encuentra un tutorial para trabajar con PyMongo: Tutorial PyMongo.
Para trabajar con Mongo primero se descarga el repositorio web-app-dev.
En la carpeta flask-backend-mongo del repositorio, en el
docker-compose.yml se comentan las líneas 30 y 31. Estas líneas solo son de
utilidad cuando se guarda la aplicación en un servidor.
En la terminal, en la carpeta flask-backend-mongo se inicia Vagrant y Docker:
vagrant up
vagrant ssh
cd /vagrant
docker-compose up
Con estos pasos se baja una imagen Mongodb de Docker y se instalan todos los requerimientos necesarios. El ambiente Windows debe estar en formato LF y no en formato CRL. En Visual Studio, en la barra de estado se cambia de la siguiente forma:
- Al correr Docker-compose up, en la barra de estado de Visual Studio debe verse los campos que se muestran en la imagen. Se da click en CRLF y se cambia por LF.
IMPORTANTE: No cambiar el nombre de la base de datos, solo cambiar el nombre de las colecciones.
Con Flask se usan funciones de Python para encapsular la lógica que permite consultar en la base de datos. Estas funciones se encuentran en la carpeta api en el archivo app.py.
Al abrir el navegador o Postman, que es un cliente http; se puede ingresar a la base de datos como localhost:8080/nombre_base_datos.
IMPORTANTE: Si no se descargó la última versión del repositorio, en app.py la línea 49 debe cambiarse por:
Nombre_base_datos.insert_one(data)
La línea 62 cambia por:
Nombre_base_datos.replace_one(
{'_id': ObjectId(code)},
data, True)
La carpeta flask-backend-mongo tiene integrado el front-end
con el back-end.
Para el front-end también se trabaja por componentes. El
front-end se visualiza con el puerto 8081. En el Vagrantfile se cambia la línea
27 por:
config.vm.network
"forwarded_port", guest: 8080, host: 8081
En la carpeta src, en el archivo config.json se cambia el puerto, así el back-end queda
en el puerto 8080:
"SERVER_URL":
"http://localhost:8080"

Comentarios
Publicar un comentario