Curso para crear tus aplicaciones con Laravel y MongoDB
- Andrés Cruz
- Este curso tiene el objetivo de enseñar los elemento básicos y no tan básicos de MongoDB; conoceremos su estructura o cómo está compuesto el mismo, como preparar todo el entorno, instalar el mismo y por supuesto realizar nuestras primeras consultas CRUD con MongoDB; aprenderemos el mismo tomando como base el esquema relacional -por ejemplo- con MySQL.
- El curso es progresivo, iremos de a poco, aprendiendo los elementos básicos en MongoDB mediante el cliente que podemos ejecutar mediante la terminal y replicando lo aprendido con MongoDB y su cliente en el ambiente Laravel; iremos creando en el proceso una pequeña aplicación funcional tipo CRUD e iremos agregando desarrollos y funcionalidades interesantes en cuando su implementación que correspondan con los visto con anterioridad nativamente en MongoDB
En este curso vamos a tratar dos tecnologías bases, Laravel y MondoDB; el curso esta centrado en mostrar la combinación de ambas tecnologías; veamos algunos conceptos claves:
MongoDB
MongoDB es una base de datos NoSQL de alto rendimiento y escalable. A diferencia de las bases de datos relacionales , en MongoDB los datos se almacenan en documentos JSON, los cuales se pueden anidar. Gracias a los JSONs podemos tener un esquema flexibilidad para anidar y modelar los datos.
MongoDB es compatible con muchas herramientas, lo cual es ideal ya que, podemos usarlo junto con nuestros desarrollos; por ejemplo, podemos usarlo con lenguajes de programación como PHP, Python, Java y Node.js.
Gracias a la integración con PHP, podemos usarlo en un proyecto en Laravel.
En resumen , MongoDB es una poderosa base de datos NoSQL, que ofrece una gran flexibilidad en el modelado de los datos y características de alta disponibilidad y escalabilidad.
Laravel
De Laravel no voy a hablarte mucho, ya que, si estas tomando este curso, significa que ya tienes conocimientos en Laravel al menos de manera básica; Laravel es un exelente framework con el cual podemos desarrollar todo tipo de proyectos webs; tenemos funcionalidades que nos facilitan mucho la vida con la integración de otras tecnologías facilmente, como por ejemplo Stripe.
Laravel con Mongo DB
Usar Laravel y MongoDB, es posible gracias a que existe un conector de PHP para la mencionada base de datos NoSQL; de esta manera, se tiene una interfaz para interactuar con MongoDB en Laravel. Además, se puede usar Eloquent para modelar y realizar consultas a las colecciones de MongoDB; para esto, existe un paquete para Laravel que es el que usamos en el curso; gracias a este paquete, se puede realizar consultas a la colección de MongoDB usando la sintaxis de consulta de Eloquent de manera directa; así que, en buena medida la integración de Laravel y MongoDB es transparente.
En resumen, trabajar con Laravel y MongoDB implica configurar la conexión a la base de datos, crear modelos para las colecciones, y realizar consultas utilizando la sintaxis de consulta de Eloquent o de MongoDB; todas estas operaciones las vemos en el curso en detalle, mostrando como realizar los procesos CRUDs adaptados a MongoDB.
A la final, la integración de Mongo en Laravel consiste en dotar a Eloquent de poder aceptar las consultas, realizarlas en Mongo y poder convertirlas a objetos y arrays en PHP.
Planificación del curso
En el curso vamos a preparar primero el ecosistema de MongoDB y su integración con Laravel (vamos a emplear un entorno Windows con Laragon pero perfectamente puedes emplear otro Sistema Operativo).
- Aprender a conectarnos a MongoDB y realizar consultas básicas tipo CRUD mediante el cliente de la terminal.
- Crear un proyecto Laravel y configurar el mismo con MongoDB; instalar TODO lo necesario para que Laravel pueda trabajar con MongoDB.
- Hacer un sencillo CRUD en Laravel con MongoDB para aplicar lo aprendido.
- Trabajar con las relaciones de uno a uno, uno a muchos y muchos a muchos en MongoDB
- Trabajar con las relaciones de uno a uno, uno a muchos y muchos a muchos en Laravel con MongoDB.
- También vamos a hacer integración con el uso de las funciones de Agregación y Proyecciones en MongoDB y su potencial uso en Laravel.
Además de varios desarrollos interesantes que se irán agregando al curso y para eso siéntete libre de ver las introducciones a cada sección del curso para saber exactamente qué es lo que vamos a hacer.
Por lo tanto, esto es un curso básico, -en el cual tienes que tener conocimiento en Laravel- en el cual aprenderemos a integrar MongoDB con Laravel y poder emplear la totalidad del framework y sus funcionalidades básicas con este motor de base de datos NoSQL
Recuerda que puedes ver las introducciones de todas las secciones de manera gratuita aquí en Udemy, para que sepas exactamente qué vamos a abordar en cada sección.
Requisito del curso
Para tomar este curso es fundamental que tienes que conocer cómo desarrollar tus aplicaciones en Laravel, ya que todo el desarrollo que iremos haciendo desde este framework NO será de caracteres introductivo y no nos pararemos demasiado en explicar elementos o funcionalidades que son básicas del framework, ya que el objetivo del curso es aprender más que las bases en MongoDB y cómo podemos emplear todo esto mediante Laravel y por supuesto emplear dicha conección de la manera más eficiente.
Por aquí tienes el listado completo de clases que vamos a cubrir en el libro y curso:
Introducción
-
1 Introducción
-
2 Estructura del curso
-
3 Requisitos para tomar el curso
Para tomar el curso necesitas tener conocimientos básicos en Flask y Django y las dependencias de estos, es decir, conocer las tecnologías web del lado del cliente como CSS, JavaScript, HTML, etc; recuerda que cuento con cursos para estos framework tanto para Flask básico como para Django; todos con muchísimas horas de contenido en los cuales abordamos todos tipos de tema.
Preparar el entorno de desarrollo
-
1 Instalar MongoDB en Windows con Laragon
Vamos a instalar MongoDB en Windows empleando Laragon.
-
2 Agregar la extensión (DLL) de MongoDB a PHP en Windows/Laragon
Vamos a agregar el DLL para PHP para poder emplear MongoDB con PHP.
-
3 Actualizar MongoDB Windows con Laragon
Vamos a aprender a variar una versión de mongoDB a otra versión.
-
4 Instalar MongoDB en MacOS
Vamos a instalar MongoDB en MacOS.
-
5 Agregar la extensión (DLL) de MongoDB a PHP en general
Vamos a agregar el DLL para PHP para poder emplear MongoDB con PHP.
-
6 Agregar dependencia para trabajar con MongoDB
Vamos a agregar la dependencia en Laravel para poder trabajar con MongoDB.
-
7 Opcional: Instalar MongoDB en Windows (Sin Laragon)
Opcional: Instalar MongoDB en Windows (Sin Laragon)
Primeros pasos con MongoDB: Operaciones CRUD
-
1 Documentación a emplear y pasos a seguir
Vamos a hablar sobre algunos parámetros que tienes que tener en cuenta para poder seguir en esta sección.
-
2 Conociendo MongoDB
Vamos a aprender algunos conceptos básicos para trabajar con MongoDB.
-
3 Trabajando con las colecciones
Vamos a trabajar con las colecciones/tablas en MongoDB.
-
4 Métodos -insert- para crear documentos/registros
Vamos a conocer cómo podemos insertar documentos en MongoDB.
-
5 Método -find- para buscar documentos/registros y findOne
Vamos a conocer cómo podemos buscar documentos en MongoDB.
-
6 Generación del ID
Generación del ID
-
7 Método -find- con parámetros de búsqueda (query) y campos (proyección)
Vamos a conocer como podemos insertar documentos en MongoDB y personalizar algunas opciones.
-
8 Método -update- para actualizar documentos
Vamos a conocer cómo podemos actualizar documentos en MongoDB.
-
9 Método -delete- para eliminar documentos
Vamos a conocer cómo podemos eliminar documentos en MongoDB.
-
10 Consultas CRUD a realizar
Consultas CRUD a realizar
Operadores Lógicos y de comparación en MongoDB
-
1 Comparaciones por cantidades y operadores lógicos and/or
Vamos a conocer como podemos emplear los operadores lógicos y de comparación en MongoDB.
-
2 Código Fuente
Código Fuente
Entorno básico
-
1 Introducción
-
2 Creando un ambiente virtual
Vamos a preparar nuestro entorno virtual para desarrollar nuestra aplicación en Django.
-
3 Instalar Django y el conector de MongoDB
Vamos a instalar el conector de MongoDB para Django.
-
4 Crear proyecto y aplicación en Django
Vamos a crear el proyecto en Django y la aplicación que vamos a emplear inicialmente.
-
5 Crear esquema y superusuario
Vamos a crear las migraciones y ejecutarlas en nuestra base de datos, además vamos a crear el superadmin.
-
6 Crear un modelo de pruebas: Book
Vamos a crear el modelo de pruebas llamado Book.
-
7 Probar la aplicación
Vamos a arrancar la aplicación y hacer algunas pruebas para evidenciar cómo va funcionando.
-
8 Representación del ID en MongoDB
Vamos a hacer algunas modificaciones en el modelo Book para evitar guardar la columna Id.
-
9 Emplear el modelo base djongo
Vamos a cambiar la importación del modelo del de Django al de Djongo.
-
10 Demostración: Importante orden en los pasos
Vamos a hacer una demostración de lo importante que es ejecutar las migraciones inicialmente para nuestro Djongo.
-
11 Opcional: Errores en VSC
Vamos a conocer como podemos ocultar los errores en VSC.
Creando un sencillo CRUD con Django, MongoDB y Bootstrap 5
-
1 Introducción
-
2 Creando una función para obtener el listado paginado
Vamos a crear la función en Django para obtener el listado de libros de la base de datos MongoDB.
-
3 Crear página base
Vamos a crear la página o template para el listado.
-
4 Instalar Bootstrap 5
Vamos a instalar Bootstrap 5 como framework web.
-
5 Crear template para el listado
Vamos a crear la página maestra o base para nuestra app de libros.
-
6 Crear enlaces de paginación
Vamos a crear los enlaces para paginar los libros.
-
7 Crear formulario para los libros
Vamos a crear la clase base de un formulario base para crear los libros.
-
8 Crear modal de Bootstrap para el formulario de los libros
Vamos a crear un modal en Bootstrap 5 para desplegar el form anterior.
-
9 Establecer estilo de Bootstrap al formulario
Vamos a darle estilo personalizado al formulario mediante el método init de la clase form.
-
10 Crear función de guardar los libros
Vamos a crear la función para guardar libros en la views de Django.
-
11 Terminar función de add
Vamos a terminar unos detalles en la función para crear un libro.
-
12 Mostrar errores del formulario
Vamos a mostrar los errores del formulario de manera individual.
-
13 Editar un libro: función en la vista
Vamos a crear la función en el views para editar un libro.
-
14 Editar un libro: modificaciones en el template
Vamos a realizar algunas modificaciones en el template para que podamos emplear la opción de edición del libro.
-
15 Editar un libro: detalles finales
-
16 Desplegar formulario el form al ocurrir errores
Vamos a mostrar el formulario de manera automática cuando el mismo presenta errores desde el servidor.
-
17 Definir función para obtener el detalle de un libro en json
Vamos a crear una función json para mostrar el detalle de un libro por el _id del mismo.
-
18 Consumir función vía fetch al momento de editar un libro
Vamos a consumir la función anterior vía un fetch para consumir el detalle de un libro y mostrarlos al momento de editar.
-
19 Limpiar campos del formulario
Vamos a limpiar los campos de formulario cuando vamos a la opción de crear.
-
20 Eliminar libro
Vamos a crear la funcionalidad completa para eliminar un libro, la función en el views, modal y accionante.
-
21 Instalar FontAwesome
Vamos a instalar nuestra iconografía y establecerla en algunas partes de nuestra interfaz.
-
22 Mostrar información de los libros a actualizar/eliminar en el modal
Vamos a variar el título del modal según si estamos en edición o creación.
-
23 Problema al actualizar al obtener errores de validación del servidor
Vamos a arreglar un pequeño problema que tenemos cuando regresamos a la vista desde la opción de edición.
-
24 Código fuente
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/djangomongo_6.zip
Relaciones en MongoDB
-
1 Documentos embebidos: Consultas de búsqueda
Vamos a realizar algunas consultas de búsqueda con los operadores de comparación y lógicos que vimos anteriormente.
-
2 Documentos embebidos: Actualizar documentos embebidos
Vamos a aprender a actualizar un documento dentro de otro documento ya sea de tipo array o simple.
-
3 Documentos embebidos: Eliminar documentos embebidos
Vamos a aprender a eliminar un documento dentro de otro documento de tipo array.
-
4 Documentos embebidos: Agregar documentos embebidos
Vamos a aprender a agregar un documento dentro de otro documento de tipo array.
-
5 Documentos por referencia
-
6 Código Fuente
Código Fuente https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/laramongo_7.zip
Conociendo las relaciones en Django con Djongo
-
1 Introducción
-
2 Creando un modelo de categorías y relación foránea
Vamos a crear otra relación para asociar con la de libros mediante una relación de tipo documento referencial.
-
3 Demostración del comportamiento de las FKs
Vamos a hacer algunas pruebas para trabajar con la relación Node tipo documento referencial.
-
4 Definir la categoría en el formulario de libros
Vamos a crear el nuevo campo en nuestro formulario.
-
5 Problemas con el enfoque de Referencia por Documento (FK) con Djongo
Vamos a explicar algunos inconvenientes que tenemos en el enfoque relacional en Djongo.
-
6 Optimizar clases modelos
Vamos a hacer unas reutilizaciones a nivel de código para las clases.
-
7 Relaciones de tipo documentos embebidos: EmbeddedField
Vamos a crear otro tipo de relación en esta oportunidad una relación de uno a uno de tipo documento embebido.
-
8 Demostración del comportamiento de los EmbeddedField
Vamos a realizar una sencilla demostración para la relación de tipo documento embebido.
-
9 EmbeddedField y definición de un formulario base
Vamos a crear un formulario base para ahorrarnos unas líneas de código para el modelo.
-
10 Relaciones muchos a muchos
Vamos a manejar la relación de tipo muchos a muchos.
-
11 Problemas y solución al emplear los EmbeddedField y los ModelForm
Vamos a conocer algunos problemas que tenemos actualmente con los formularios y los cambios embebidos.
-
12 Precargar datos en el formulario para edición
Vamos a precargar los datos en el formulario al momento de la edición.
-
13 Crear función aparte para validar las dimensiones
Vamos a crear un proceso para aplicar reglas de validación sobre un campo del libro.
-
14 Validar campos
Vamos terminar el proceso de validación del formulario.
-
15 Crear/actualizar dimensión
Vamos a crear el proceso de gestión para las dimensiones.
-
16 Validar y guardar direcciones
Vamos a crear el proceso de gestión para las direcciones.
-
17 Guardar etiquetas
Vamos a realizar el proceso de guardado para las etiquetas.
-
18 Opcional: Configuración para los errores
Vamos a mostrar los errores del formulario.
-
19 Código fuente
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/djangomongo_8.zip https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/requirements_8.txt
Creando una Rest Api con Django y MongoDB
-
1 Introducción
-
2 Crear aplicación
Vamos a crear una nueva aplicación en nuestro proyecto en Django.
-
3 Instalar Django Rest Framework
Vamos a instalar nuestro DRF para la creación de la RestApi.
-
4 Creando una sencilla RestApi con los libros
Vamos a crear la Rest CRUD para los libros.
-
5 Instalando Rest meets Djongo
Vamos a instalar al manejador de la RestApi para Djongo.
-
6 Opcional: Problemas en el formulario de la sección anterior
Vamos a corregir algunos problemas que vamos a tener cuando hagamos una desactualización del conector de MongoDB.
-
7 Posibles problemas con la versión anterior de Djongo
Posibles problemas con la versión anterior de Djongo
-
8 Relaciones foráneas y de muchos a muchos
-
9 Probar el resto de los métodos de nuestra RestApi
Vamos a probar la RestApi que tenemos actualmente.
-
10 Método para actualizar la categoría de un libro
Vamos a crear el proceso para actualizar un libro.
-
11 Método para agregar un Tag
Vamos a crear un recurso Rest para crear etiquetas.
-
12 Método para eliminar un Tag
Vamos a crear el recurso Rest para eliminar etiquetas.
-
13 Método para agregar una dirección
Vamos a crear el recurso Rest para agregar direcciones.
-
14 Método para remover una dirección por posición
Vamos a crear el recurso Rest para remover una dirección por la posición.
-
15 Tarea: Crear recurso rest para actualizar una dirección por dirección
Vamos a crear el CRUD para las etiquetas y categorías.
-
16 Resolución tarea
Resolución tarea
-
17 Rest CRUD para Tags y Categorías
-
18 Códifo fuente
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/djangomongo_9.zip
Django: Autenticación
-
1 Crear un backend de autenticación
Vamos a crear un backend personalizado para realizar el login con Django y MongoDB.
-
2 Autenticación por token en Django Rest Framework
Vamos a crear la autenticación por tokens en DRF.
-
3 Autenticación por JWT (JSON Web Token) en Django Rest Framework
Vamos a crear la autenticación vía JWT en la Rest Api con DRF.
Consumir RestApi mediante una aplicación en Vue
-
1 Instalar Vue 3 mediante el NPM
Vamos a instalar Vue 3 mediante la NPM.
-
2 Crear un proyecto en Vue
Vamos a crear un proyecto en Vue.
-
3 Instalar y configurar Bootstrap 5 NPM
Vamos a instalar configurar B5 con NPM.
-
4 Instalar axios
Vamos a instalar axios para realizar peticiones http.
-
5 Configurar los cors headers
Vamos a configurar los CORS en nuestro proyecto en Django.
-
6 Configurar los cors headers
Vamos a configurar los CORS en nuestro proyecto en Django.
-
7 Crear un simple listado de libros
Vamos a crear un listado de libros inicial.
-
8 Instalar FontAwesome
Vamos a instalar nuestro FontAwesome para representar nuestros iconos.
-
9 Terminar el diseño inicial para el listado
Vamos a terminar el diseño para nuestro listado.
-
10 Terminar el diseño para el formulario de dirección
Vamos a terminar el diseño de los formularios para la dirección.
-
11 Actualizar dirección mediante una petición axios
Vamos a hacer el proceso para actualizar una dirección via axios.
-
12 Eliminar una dirección
Vamos a crear el proceso para eliminar una dirección.
-
13 Opcional: Efecto desvanecer al eliminar
Vamos a crear el efecto de eliminación mediante CSS.
-
14 Componente y listado de etiquetas
Vamos a crear el listado inicial de los tags.
-
15 Método para asignar una etiqueta en un libro
Vamos a crear el proceso para asignar un tag a un libro.
-
16 Listado de etiquetas de un libro
Vamos a crear el proceso de listado de etiquetas que tiene asignado un libro.
-
17 Eliminar una etiqueta de un libro
Vamos a eliminar una etiqueta de un libro.
-
18 Refrescar el componente de Tags al asignar una etiqueta
Vamos a hacer un refresco de las etiquetas de un libro al momento de asignar una a un libro.
-
19 Refrescar el componente de Tags al eliminar una etiqueta
Vamos a hacer un refresco de las etiquetas de un libro al momento de eliminar una de un libro.
-
20 Bloquear campos de formulario por defecto
Vamos a hacer un bloqueo o deshabilitación de los campos de formulario para las direcciones.
-
21 Crear direcciones a un libro
Vamos a crear una dirección a un libro.
-
22 Actualizar las direcciones del listado principal de libros
Vamos a crear crear el proceso de actualización del listado principal de los libros al momento de registrar una dirección.
-
23 Crear botones flotantes
Vamos a crear unos botones flotantes.
-
24 Crear y activar un modal mediante los botones flotantes
Vamos a crear un componente de Modal.
-
25 Referenciar al componente hijo desde el padre
-
26 Crear categorías y tags
Vamos a crear el proceso de creación de las categorías y etiquetas.
-
27 Mostrar errores en los formularios
Vamos a mostrar errores del formulario.
-
28 Refrescar etiquetas
Vamos a actualizar el listado de etiquetas al momento de crear una nueva.
-
29 Tarea: Crear componente de categoría
Tarea: Crear componente de categoría
-
30 Resolución tarea
Resolución tarea
Creando un sencillo CRUD con Flask, MongoDB y Bootstrap 5
-
1 Introducción
-
2 Creación del espacio virtual
Vamos a crear el espacio virtual para nuestro proyecto en Flask.
-
3 Instalar las dependencias: Flask y Flask-Mongo
Vamos a instalar las dependencias necesarias para avanzar en nuestro proyecto.
-
4 Crear la estructura inicial de la aplicación
Vamos a crear la estructura de nuestra app.
-
5 Hola Mundo en Flask
Vamos a crear un Hola Mundo en Flask.
-
6 Crear el modelo book
Vamos a crear nuestro modelo de book.
-
7 Primeras operaciones: Crear un libro
Vamos a hacer las primeras pruebas con MongoDB y Flask y vamos a crear un libro.
-
8 Primeras operaciones: Obtener un libro
Vamos a obtener el detalle de un libro.
-
9 Primeras operaciones: Obtener todos los libros
-
10 Primeras operaciones: Obtener un libro o 404
Vamos a conocer una función que nos permitirá, dado un ID incorrecto, devolver la página de 404; también conocer la función de get.
-
11 Primeras operaciones: Eliminar un libro
Vamos a eliminar un libro de la base de datos de diversas formas.
-
12 Primeras operaciones: Actualizar un libro
Vamos a actualizar un documento
-
13 Crear función de paginación
Vamos a crear la función que vamos a emplear para mostrar el listado de libros.
-
14 Crear template maestro
Vamos a crear el template maestro de nuestra app.
-
15 Crear vista paginada
Vamos a crear la vista paginada.
-
16 Instalar Bootstrap 5
Vamos a instalar Bootstrap 5 como framework web.
-
17 Dar el diseño de B5 para nuestro listado
Vamos a adaptar el diseño de Bootstrap 5 a nuestro listado.
-
18 Crear enlaces de navegación para la paginación
Vamos a crear enlaces de navegación.
-
19 Crear libros mediante un formulario
Vamos a crear todo el proceso para guardar nuestros libros en una base de datos.
-
20 Instalar FontAwesome
Vamos a instalar nuestra iconografía y establecerla en algunas partes de nuestra interfaz.
-
21 Crear modal de Bootstrap para el formulario de los libros
Vamos a crear un modal en Bootstrap 5 para desplegar el form anterior.
-
22 Terminar función de agregar
Vamos a terminar unos detalles para que el proceso de creación funcione de manera correcta al momento de creación.
-
23 Mostrar mensajes de errores del formulario
Vamos a mostrar los errores del formulario
-
24 Vamos a crear los enlaces para edición y eliminación
Vamos a crear los enlaces para realizar algunas operaciones CRUD.
-
25 Crear función json que devuelve el detalle de un libro
Vamos a crear la función json para obtener el detalle de un libro.
-
26 Variar la URL del modal según si estamos en edición o creación mediante JS
Vamos a variar la URL del formulario del modal según si estamos en edición o creación.
-
27 Cargar los datos del formulario en el modal en modo edición
Vamos a mostrar los datos del libro que estamos editando en el modal.
-
28 Terminar función para actualizar
Vamos a completar la función para actualizar un libro.
-
29 Abrir modal de manera automática al ocurrir un error
Vamos a mostrar el modal al momento de que ocurra un error en el form.
-
30 Personalizar mensaje del modal
Vamos a personalizar el modal según si estamos en fase de creación o actualización.
-
31 Eliminar un documento con ventana de confirmación
Vamos a crear el proceso de eliminar un libro con diálogo de confirmación.
-
32 Código fuente
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/mongoflask_12.zip
Conociendo las relaciones en Flask con MongoEngine
-
1 Introduccion
-
2 Creando un modelo de categorías y relación foránea
Vamos a crear otra relación para asociar con la de libros mediante una relación de tipo documento referencial.
-
3 Demostración del comportamiento de las FKs
Vamos a hacer algunas pruebas para trabajar con la relación Node tipo documento referencial.
-
4 Definir la categoría en el formulario de libros
Vamos a crear el nuevo campo en nuestro formulario.
-
5 Relaciones de tipo documentos embebidos: EmbeddedDocument
Vamos a crear otro tipo de relación en esta oportunidad una relación de uno a uno de tipo documento embebido.
-
6 Demostración del comportamiento de los EmbeddedDocument
Vamos a realizar una sencilla demostración para la relación de tipo documento embebido.
-
7 EmbeddedDocument y definición de un formulario base
Vamos a crear un formulario base para ahorrarnos unas líneas de código para el modelo.
-
8 Relaciones de tipo documentos embebidos tipo array
Vamos a conocer otro tipo de relación, de tipo array o de uno a muchos y de documento embebido.
-
9 Demostración del comportamiento de los documentos embebidos tipo array
Vamos a hacer unas pruebas para operar con los documentos embebidos de tipo array para las direcciones.
-
10 Documentos embebidos tipo array y definición de un formulario base
Vamos a crear un formulario para las direcciones.
-
11 Relaciones muchos a muchos
Vamos a manejar la relación de tipo muchos a muchos.
-
12 Demostración del comportamiento de las relaciones muchos a muchos
Vamos a realizar una demostración con las relaciones de muchos a muchos.
-
13 Relaciones muchos a muchos y definición de un formulario base
Vamos a definir los campos de etiquetas en el form base y función de establecer los datos del libro.
-
14 Precargar datos en el formulario para edición
Vamos a precargar los datos en el formulario al momento de la edición.
-
15 Resolución tarea: Selección múltiple tags
Resolución tarea: Selección múltiple tags
-
16 Código fuente
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/mongoflask_13.zip
Creando una Rest Api con Flask MongoEngine y MongoDB
-
1 Instalar Flask RestFul
Vamos a instalar Flask RestFul para crear la RestApi.
-
2 Crear un recurso para obtener todos los libros
Vamos a crear un recurso para obtener todos los libros.
-
3 Crear un recurso para obtener el detalle de un libro
Vamos a crear un recurso para obtener el detalle de un libro por el id.
-
4 Empleando la función de agregación para obtener el detalle de la categoría
Vamos a emplear la función de agregación en conjunto con nuestro Flask RestFul para obtener el detalle de la categoría.
-
5 Empleando la función de agregación para obtener el detalle de las etiquetas
Vamos a emplear la función de agregación en conjunto con nuestro Flask RestFul para obtener el detalle del tag.
-
6 Mostrar las direcciones y dimensiones
Vamos a mostrar el detalle de las direcciones y dimensiones.
-
7 Mover variables globales fuera de la instancia de la clase
Vamos a mover las definición de los campos o estructura de nuestro modelo de libros.
-
8 Aplicar cambios anteriores en el recurso de detalle
Vamos a aplicar los cambios que hicimos anteriormente para el detalle del libro.
-
9 Recurso para crear un libro
Vamos a crear el recurso rest para crear un libro.
-
10 Tarea: Recurso para actualizar un libro
Vas a crear el recurso rest para actualizar un libro.
-
11 Tarea: Recurso para eliminar un libro
Vas a crear el recurso rest para eliminar un libro.
-
12 Método para actualizar la categoría de un libro
Vamos a crear el proceso para actualizar un libro.
-
13 Método para agregar un Tag
Vamos a crear un recurso Rest para crear etiquetas.
-
14 Método para eliminar un Tag
Vamos a crear el recurso Rest para eliminar etiquetas.
-
15 Método para agregar y remover una dirección
Vamos a crear el recurso Rest para agregar y remover direcciones.
-
16 Tarea: Rest CRUD para Tags y Categorías
Tarea: Rest CRUD para Tags y Categorías
-
17 Resolución tarea
Resolución tarea
-
18 Código fuente
https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/mongoflask_14.zip https://github.com/libredesarrollo/codigo_mongo_flask_django/blob/main/requirement_14.txt
Flask: Autenticación
-
1 FlaskUser: Instalar dependencia
Vamos a explicar que es lo que vamos a crear e instalar las dependencias.
-
2 FlaskUser: Crear modelo
Vamos a crear el modelo para la autenticación.
-
3 FlaskUser: Crear controlador
Vamos a crear el controlador para realizar ciertas pruebas y saber si estamos autenticados o no.
-
4 FlaskUser: Integrar
Vamos a integrar lo realizado anteriormente en el proyecto.
-
5 FlaskUser: Probar
Vamos a probar el módulo de autenticación que creamos anteriormente.
-
6 FlaskUser: Tarea, proteger módulo gestión
Vamos a proteger el módulo de gestión con nuestro FlaskUser.
-
7 FlaskJWT: Progeger la Rest Api
Vamos la Rest Api con Json Web Tokens.
Framework de Agregación en MongoDB:
-
1 Introducción
-
2 Presentación
-
3 Filtros con match
Vamos a mostrar el uso de la función match para colocar filtros para los documentos a obtener.
-
4 Proyecciones
Vamos a presentar el uso de las proyecciones para indicar los campos de salida.
-
5 Proyecciones y otros operadores: arrayElemAt y slice
Vamos a ver algunas combinaciones entre las proyecciones y otros operadores.
-
6 Match, Proyecciones y agregar campos dinámicos
Vamos a conocer como podemos agregar campos de manera dinámica.
-
7 Operador group
Vamos a conocer cómo podemos agrupar documentos por un campo.
-
8 Operador limit
Vamos a conocer como podemos limitar la cantidad de documentos.
-
9 Funciones matemáticas con group
Vamos a emplear algunas funciones matemáticas para la agregación, sumar, contar, mínimo, máximo y promedio.
-
10 Ordenación
Vamos a conocer cómo podemos ordenar documentos.
Extra: Actualización con Agregación Pipelines y Arrays en MongoDB:
-
1 Actualización con Agregación Pipelines en MongoDB
Vamos a hacer algunas pruebas actualizando un pull de registros mediante pipes.
-
2 Actualización de array: insertar array en un documento existente - $push
Vamos a crear un registro y luego editar el mismo para agregar un array.
-
3 Actualización de array: insertar un elemento - $push
Vamos a agregar más elementos al array anterior.
-
4 Actualización de array: insertar array de elementos - $push/$each
Vamos a insertar un array dentro del array.
-
5 Actualización de array: insertar un elemento si no existe - $addToSet
Vamos a insertar un nuevo elemento si el mismo no existe.
-
6 Actualización de array: eliminar un elemento a los extremos - $pop
Vamos a eliminar un elemento mediante el operador de pop.
-
7 Actualización de array: eliminar elementos por valor/match - $pullAll
Vamos a eliminar un grupo de elementos por el valor.
-
8 Actualización de array: eliminar elemento por valor/match - $pull
Vamos a eliminar un elemento por el valor.
-
9 Actualización de array: eliminar elemento por valor/match - $pull parte 2
-
10 Actualización de array: actualizar todos los elementos del array
Vamos a emplear el operador de $ para actualizar todos los elementos.
-
11 Actualización de array: actualizar un elemento del array
Vamos a emplear el operador de $ para actualizar un elemento.
-
12 Código fuente
Código fuente
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter