
Este es un curso en sí mismo es todo un reto por la poca documentación que hay al respecto en trabajar con Python web con Django y/o Flask y MongoDB y de aquí el porqué me animé a sacar este tipo de cursos, ya que MongoDB cada vez toca más fuerza y una de las integraciones más interesantes y completas que tenemos es con Python web y este sistema de base de datos.
El principal objetivo del curso es trabajar con MongoDB y Flask y/o Django, crear los típicos CRUDs, Api Rest, manejo de formularios, integración con otras tecnologías como Vue y para evidenciar cada una de las funcionalidades que tiene MondoDB y cómo las podemos emplear el Python web con diferentes conectores.
Tambien fijate que generalmente al final de cada sección se encuentra el código fuente del proyecto, listo para que realices pruebas con el; recuerda que el código fuente es tuyo y puedes hacer lo que quieras con el.
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.
Vamos a instalar MongoDB en Windows empleando Laragon.
Vamos a aprender a variar una versión de mongoDB a otra versión.
Vamos a instalar MongoDB en MacOS.
Vamos a hablar sobre algunos parámetros que tienes que tener en cuenta para poder seguir en esta sección.
Vamos a aprender algunos conceptos básicos para trabajar con MongoDB.
Vamos a trabajar con las colecciones/tablas en MongoDB.
Vamos a conocer cómo podemos insertar documentos en MongoDB.
Vamos a conocer cómo podemos buscar documentos en MongoDB.
Vamos a conocer como podemos insertar documentos en MongoDB y personalizar algunas opciones.
Vamos a conocer cómo podemos actualizar documentos en MongoDB.
Vamos a conocer cómo podemos eliminar documentos en MongoDB.
Vamos a conocer como podemos emplear los operadores lógicos y de comparación en MongoDB.
Vamos a preparar nuestro entorno virtual para desarrollar nuestra aplicación en Django.
Vamos a instalar el conector de MongoDB para Django.
Vamos a crear el proyecto en Django y la aplicación que vamos a emplear inicialmente.
Vamos a crear las migraciones y ejecutarlas en nuestra base de datos, además vamos a crear el superadmin.
Vamos a crear el modelo de pruebas llamado Book.
Vamos a arrancar la aplicación y hacer algunas pruebas para evidenciar cómo va funcionando.
Vamos a hacer algunas modificaciones en el modelo Book para evitar guardar la columna Id.
Vamos a cambiar la importación del modelo del de Django al de Djongo.
Vamos a hacer una demostración de lo importante que es ejecutar las migraciones inicialmente para nuestro Djongo.
Vamos a conocer como podemos ocultar los errores en VSC.
Vamos a crear la función en Django para obtener el listado de libros de la base de datos MongoDB.
Vamos a crear la página o template para el listado.
Vamos a instalar Bootstrap 5 como framework web.
Vamos a crear la página maestra o base para nuestra app de libros.
Vamos a crear los enlaces para paginar los libros.
Vamos a crear la clase base de un formulario base para crear los libros.
Vamos a crear un modal en Bootstrap 5 para desplegar el form anterior.
Vamos a darle estilo personalizado al formulario mediante el método init de la clase form.
Vamos a crear la función para guardar libros en la views de Django.
Vamos a terminar unos detalles en la función para crear un libro.
Vamos a mostrar los errores del formulario de manera individual.
Vamos a crear la función en el views para editar un libro.
Vamos a realizar algunas modificaciones en el template para que podamos emplear la opción de edición del libro.
Vamos a mostrar el formulario de manera automática cuando el mismo presenta errores desde el servidor.
Vamos a crear una función json para mostrar el detalle de un libro por el _id del mismo.
Vamos a consumir la función anterior vía un fetch para consumir el detalle de un libro y mostrarlos al momento de editar.
Vamos a limpiar los campos de formulario cuando vamos a la opción de crear.
Vamos a crear la funcionalidad completa para eliminar un libro, la función en el views, modal y accionante.
Vamos a instalar nuestra iconografía y establecerla en algunas partes de nuestra interfaz.
Vamos a variar el título del modal según si estamos en edición o creación.
Vamos a arreglar un pequeño problema que tenemos cuando regresamos a la vista desde la opción de edición.
Vamos a explicar la estructura de documentos embebidos en MongoDB.
Vamos a realizar algunas consultas de búsqueda con los operadores de comparación y lógicos que vimos anteriormente.
Vamos a aprender a actualizar un documento dentro de otro documento ya sea de tipo array o simple.
Vamos a aprender a eliminar un documento dentro de otro documento de tipo array.
Vamos a aprender a agregar un documento dentro de otro documento de tipo array.
Vamos a trabajar con los documentos por referencia de tipo One to One y One to Many.
Vamos a crear otra relación para asociar con la de libros mediante una relación de tipo documento referencial.
Vamos a hacer algunas pruebas para trabajar con la relación Node tipo documento referencial.
Vamos a crear el nuevo campo en nuestro formulario.
Vamos a explicar algunos inconvenientes que tenemos en el enfoque relacional en Djongo.
Vamos a hacer unas reutilizaciones a nivel de código para las clases.
Vamos a crear otro tipo de relación en esta oportunidad una relación de uno a uno de tipo documento embebido.
Vamos a realizar una sencilla demostración para la relación de tipo documento embebido.
Vamos a crear un formulario base para ahorrarnos unas líneas de código para el modelo.
Vamos a conocer otro tipo de relación, de tipo array o de uno a muchos y de documento embebido.
Vamos a manejar la relación de tipo muchos a muchos.
Vamos a conocer algunos problemas que tenemos actualmente con los formularios y los cambios embebidos.
Vamos a precargar los datos en el formulario al momento de la edición.
Vamos a crear un proceso para aplicar reglas de validación sobre un campo del libro.
Vamos terminar el proceso de validación del formulario.
Vamos a crear el proceso de gestión para las dimensiones.
Vamos a crear el proceso de gestión para las direcciones.
Vamos a realizar el proceso de guardado para las etiquetas.
Vamos a mostrar los errores del formulario.
Vamos a crear una nueva aplicación en nuestro proyecto en Django.
Vamos a instalar nuestro DRF para la creación de la RestApi.
Vamos a crear la Rest CRUD para los libros.
Vamos a instalar al manejador de la RestApi para Djongo.
Vamos a corregir algunos problemas que vamos a tener cuando hagamos una desactualización del conector de MongoDB.
Vamos a conocer como implementar las relaciones de muchos a muchos en DRF.
Vamos a probar la RestApi que tenemos actualmente.
Vamos a crear el proceso para actualizar un libro.
Vamos a crear un recurso Rest para crear etiquetas.
Vamos a crear el recurso Rest para eliminar etiquetas.
Vamos a crear el recurso Rest para agregar direcciones.
Vamos a crear el recurso Rest para remover una dirección por la posición.
Vamos a crear el CRUD para las etiquetas y categorías.
Vamos a crear un backend personalizado para realizar el login con Django y MongoDB.
Vamos a crear la autenticación por tokens en DRF.
Vamos a crear la autenticación vía JWT en la Rest Api con DRF.
En este curso vamos a construir apps modernas empleando Python web con MongoDB específicamente empleando los frameworks de Django y Flask con los conectores específicos para conectarse a MongoDB en conjunto con otras tecnologías como HTML, CSS, JavaScript nativo, Bootstrap 5, Vue 3 y muchas otras más de manera integrada.
Este curso de nivel intermedio, necesitas que cuentes con conocimientos básicos en Flask, Django y Vue en su versión 2 o 3, además de conocer algo de Bootstrap 3, 4 o 5; recuerda que cuento con cursos básicos en estas tecnologías en caso de que NO cuentes con conocimientos en estas tecnologías o quieras profundizar más.
Vamos a aprender a trabajar con MongoDB como tecnología central, no es necesario que sepas nada de MongoDB ya que TODO lo vamos a cubrir en este curso pero sí que conozcas algo del ambiente relacional de las base de datos, como MySQL o MariaDB, y esto es que, vamos a realizar comparaciones y apoyarnos en el esquema relacional para aprender MongoDB.
El curso es práctico, iremos de a poco conociendo cómo trabajar con MongoDB, y a medida que aprendamos cómo movernos con esta herramienta iremos creando la aplicación en Django y a posterior, vamos a construir la misma app en Flask.
También vamos a crear una aplicación OnePage, en Vue 3 para consumir la Rest Api que creamos en Django y consumir el completo CRUD de la Rest mediante Vue, aprenderemos a hacer adaptaciones interesantes entre ambas tecnologías.
IMPORTANTE
Recuerda que en el caso de Django estamos trabajando con tecnologías con versiones específicas, por lo tanto habrá bugs, problemas de incompatibilidad de versiones, y conoceremos a fondo varios elementos en Django que emplearemos para solventar posibles problemas de integración entre todas las herramientas que vamos a ver; en definitiva, vamos a hacer que funcionen de manera conjunta:
Django
Django Rest Framework
Djongo
Rest Meets Djongo
Flask, al ser un micro framework se nos hará más amena la integración con este tipo de tecnologías y emplearemos como conector nuestro MongoEngine en una versión específica para Flask.
RESUMEN
Vamos a aprender a crear aplicaciones modernas y recurrentes en Django y Flask teniendo como elemento central MongoDB y luego consumirlas desde otras aplicaciones como Vue 3 mediante una Rest Api.
En el curso vas a aprender:
Operaciones CRUD en MongoDB
Relaciones en MongoDB de tipo:
Uno a uno documentos embebidos
Uno a muchos relacional y embebido
Muchos a Muchos relacional
Trabajar con espacios o ambientes virtuales en Python
El framework de agregación y proyección en MongoDB
Integrar Django con MongoDB con Djongo
Crear operaciones de tipo CRUD en Django con MongoDB
Relaciones en MongoDB y Django
Crear una Api Rest en Django con Django Rest Framework
Integración de Django Admin con MongoDB
Crear una aplicación en Vue 3 que consuma la Api Rest
Posibles problemas y múltiples demostraciones de cómo resolverlos en la integración de Django con MongoDB.
Lo hablado anteriormente en Django MongoDB con Flask