Curso y libro desarrollo web con Django 5 y Python 3 + integración con Vue 3, Bootstrap y Alpine.js

Este es el curso MÁS completo que encontrarás de Django 5, veremos de todo, desde aspectos básicos como las rutas, vistas, templates, modelos, manejo de formularios, validaciones, entre otros hasta aspectos más completos como Rest Api con token de autenticación y Django Rest Framework (y una app para consumir la misma desde Vue -proximamente-), paquetes imprecindibles Django Channels y mucho más, el detalle del curso lo puedes ver en la parte inferior de esta publicación y lo mejor, es que es una inversión para varios años ya que, de manera gratuita, mantendré el curso por varios años a las nuevas versiones y dando mayor soporte por Academia.

Tambien tengo recursos gratuitos para Django como un curso gratis para Django que veremos más adelante.

Comprar el Curso en Django 5

A continuación, te presendo algunas opciones para comprar el curso; comenzando por la opción con mejor calidad precio que sería en la app de Academia:

Precio mínimo:

$8.0

Condiciones:

  • Todo el curso de por vida y descarga individual
  • Un único pago para todo el curso
  • Actualizaciones más frecuentes que en Udemy para agregar más y más clases al curso.
  • Contacto por mensajes
  • *Contenido Legacy (curso anterior de 47 horas)

El curso actualizado en udemy:

Precio mínimo:

$9.9

Hasta el --/--

Condiciones:

  • Todo el curso de por vida
  • Un único pago para todo el curso
  • Actualizaciones frecuentes para agregar más y más clases al curso.
  • Contacto por mensajes

El curso Legacy en udemy lo puedes encontrar aqui:

Precio mínimo:

$9.9

Hasta el --/--

Condiciones:

  • Todo el curso de por vida
  • Un único pago para todo el curso
  • Contacto por mensajes

Por Gumroad

En este curso vas a aprender a crear tus primeras aplicaciones web en Django framework empleando Python 3, junto con el lenguaje más famoso para este lenguaje de programación como lo es Python, te dejo una lista de reproducción sobre las introducciones al curso para que veas que es lo que vas a ver en el curso:

Qué puedes esperar del curso y que no

Vamos a tratar múltiples tecnologías en este curso, pero centrándonos en el framework de Django que es nuestro principal caso de interés, por lo tanto, emplearemos y explicaremos estas tecnologías relacionadas como Vue o Bootstrap en cualquiera de sus versiones hasta que sea necesario sin profundizar completamente en estas tecnologías relacionadas.

En este curso vamos a aprender desde cero a programar en nuestro framework Django, conocer el ecosistema que necesitamos que es básicamente contar con Python en la versión 3 o superior; instalar paquetes, emplear Django en conjunto con Bootstrap 4 o 5, Vue con Vue Cli, crear la Rest Api, emplear y configurar la app de Admin para la gestión o CRUD de nuestros modelos registrados y un largo etc.

Nos apoyaremos en la documentación oficial del framework que es excelente, muy extensa y para la parte introductoria la misma en buena medida la puedes consumir en español. 

El curso se encuentra dividido en varias secciones, para ir desarrollando de a poco, haciendo pequeñas aplicaciones web tanto en Django, Vue Cli, conectándose con la Rest API que iremos mejorando progresivamente hasta mejorar nuestros conocimientos en este framework:

En definitiva, es un curso enorme que no te puedes perdes con más de 40 horas de contenido y agregando más curso de vez en cuando.

Para quién es este tutorial

  • Este libro está dirigido a cualquiera que quiera comenzar a desarrollar con Django; puede que vengas de otro framework o inclusive PHP; en ambos casos es una gran idea aprender de uno de los frameworks webs más avanzados y completos que podrás encontrar.
  • Para aquellos que quieran conocer el framework y que conozcan otros frameworks webs, pero no tienen los conocimientos necesarios para aventurarse en estos.
  • Para aquellas personas que quieran aprender algo nuevo, conocer sobre un framework que, aunque tiene mucha documentación, la mayoría está en inglés y al estar el framework en constante evolución, tiende a quedar desactualizada.
  • Para las personas que quieran mejorar una habilidad en el desarrollo web, que quiera crecer como desarrollador y que quiera seguir escalando su camino con otros frameworks similares a este.
  • Para aquellos que quieran aprender o mejorar una habilidad y con esto, aumentar sus posibilidades de empleo o para llevar un proyecto personal.

Por aquí tienes el listado completo de clases que vamos a cubrir en el libro y curso:

Introducción a Django

  • 1 Introducción

  • 2 Software necesario

  • 3 Verificar el comando de acceso a Python 3 y Pip

    Vamos a hacer unas pruebas para acceder a Python 3.

  • 4 Preparar el entorno

    Vamos a crear el ambiente virtual.

  • 5 Instalar Django

    Vamos a instalar el framework web.

  • 6 Proyecto vs aplicación

    Vamos a hablar la diferencia entre proyecto y aplicación en Django.

  • 7 Estructura del proyecto

    Vamos a hablar de la estructura del proyecto.

  • 8 Hola Mundo

    Vamos a crear un hola mundo, para ello, conoceremos cómo emplear una vista, definir rutas en la aplicación y cargar las rutas de la aplicación y la aplicación en el proyecto.

  • 9 Línea de comandos en Django

    Vamos a presentar algunos comandos importantes en Django.

  • 10 MTV

    Vamos a dar una presentación al MTV de Django.

  • 11 Opcional: Seleccionar el intérprete de Python en VSC y/o crear venv

    Vamos a configurar VSC para que reconozca los paquetes del proyecto.

  • 12 Realizar preguntas

Primeros pasos con Python (Reforzamiento)

  • 1 Introducción

  • 2 Consola interactiva/consola de Python

    Vamos a presentar como usar la consola de Python, ideal para hacer pruebas.

  • 3 Archivos de Python

    Vamos a conocer como crear los archivos para programar en Python.

  • 4 Variables y tipo de datos

    Vamos a conocer cómo emplear las variables y sus tipos de datos.

  • 5 Operaciones matemáticas

    Vamos a conocer cómo funcionan las operaciones matemáticas en Python.

  • 6 Concatenación de String

    Vamos a conocer cómo funcionan las concatenaciones de String en Python.

  • 7 Casteos

    Vamos a aprender a realizar casteos o conversión entre distintos tipos.

  • 8 Listas

    Vamos a aprender a trabajar con las listas.

  • 9 Condicionales

    Vamos a conocer el uso de los condicionales.

  • 10 Ciclos

    Vamos a conocer el uso de los ciclos while y for.

  • 11 Funciones

    Daremos los primeros pasos con las funciones en Python

  • 12 Funciones parte 2

    Daremos los primeros pasos con las funciones en Python

  • 13 Diccionarios

    Vamos a conocer el uso de los diccionarios.

  • 14 Clases, Primeros pasos

    Vamos a hablar sobre las clases, su propósito, importancia y características bases.

  • 15 Clases, Primeras clases

    Vamos a crear la primera clase y definir sus atributos y métodos.

  • 16 Clases, Método constructor

    Vamos a conocer como trabajar con los métodos constructores.

  • 17 Clases, Herencia

    Vamos a conocer cómo emplear la herencia de clases.

Crear una aplicación tipo CRUD

  • 1 Introducción

  • 2 Modelos

    Vamos a crear los modelos principales con los cuales vamos a trabajar.

  • 3 Reto: Crear modelo de comentario

    Vamos a crear un modelo para los comentarios.

  • 4 Introducción a las migraciones

    Vamos a presentar las migraciones y crear las primeras migraciones y ejecutar en la base de datos.

  • 5 Visualizar base de datos

    Vamos a visualizar los datos de la base de datos y analizar los resultados.

  • 6 Revertir migraciones

    Vamos a aprender a revertir las migraciones.

  • 7 Renderizar un template

    Vamos a renderizar un template.

  • 8 Pase de parámetros al template

    Vamos a pasar parámetros al template.

  • 9 Carpetas contenedoras para los templates

    Vamos a mostrar cómo emplear carpetas para organizar los templates.

  • 10 Shortcut, funciones de ayuda

    Vamos a dar una presentación de las funciones de ayuda.

  • 11 Formularios y manejo de las peticiones desde la vista/controlador

    Vamos a aprender a crear un formulario de manera manual con HTML y usarlo desde la app en Django.

  • 12 Crear un objeto modelo y registrar en la base de datos

    Vamos a crear un registro en la base de datos mediante una instancia del modelo comentario.

  • 13 Modelos para los formularios

    Vamos a aprender a usar los FormModel.

  • 14 Operaciones a la base de datos

    Vamos a conocer algunas operaciones para interactuar con la base de datos que van a ser necesarias para poder hacer el CRUD.

  • 15 Shell

    Veremos cómo emplear la herramienta para interactuar con el proyecto.

  • 16 CRUD: Listado

    Vamos a crear el proceso CRUD para el listado.

  • 17 CRUD: Editar

    Vamos a crear el proceso CRUD para editar.

  • 18 CRUD: Eliminar

    Vamos a crear el proceso CRUD para eliminar.

  • 19 Redirecciones

    Vamos a conocer como hacer redirecciones.

  • 20 Paginación

    Vamos a crear un pull de registros paginados al igual que los enlaces de paginación en el template.

  • 21 Encontrar o 404: Detalle

    Vamos a aprender a capturar las excepciones que ocurren cuando un registro no existe.

  • 22 Encontrar o 404: Listados

    Vamos a aprender a capturar las excepciones que ocurren cuando un listado no existe.

  • 23 Faker: Primeras pruebas

    Vamos a aprender a generar datos de prueba.

  • 24 Faker: Crear script

    Vamos a crear el script para ejecutar el script creado anteriormente.

  • 25 Publicar en Github

Django Admin

  • 1 Introducción

    Introducción

  • 2 Presentación

    Hablaremos un poco sobre la herramienta de Django Admin.

  • 3 Crear superusuario

    Vamos a crear un usuario superadministrador.

  • 4 Agregar nuestras propias relaciones

    Vamos a asignar el modelo de comentarios a Django Admin.

  • 5 Personalizar opciones de consulta

    Vamos a conocer algunos atributos para personalizar la gestión de alguna entidad en Django Admin.

  • 6 Personalizar opciones de guardado

    Vamos a conocer algunas opciones de guardado.

  • 7 Registrar clases mediante un decorador

    Vamos a conocer un decorador para registrar clases.

  • 8 Registrar el modelo para los tipos y categorías

    Vamos a crear la clase admin para los tipos y categorías.

  • 9 Registrar el modelo para los elements

    Vamos a crear la clase admin para los elementos.

  • 10 Agrupar los campos de gestión, fields

    Vamos a aprender a colocar campos en una sola línea para Django admin.

  • 11 Agrupar los campos de gestión, fieldset

    Vamos a conocer cómo emplear los fieldset para agrupar campos.

  • 12 Personalizar campos del formulario

    Vamos a hablar sobre cómo modificar campos de formulario.

  • 13 Crear campos personalizables

    Vamos a crear campos personalizables mediante funciones.

  • 14 Opciones de guardado

    Vamos a conocer cómo cambiar algunas opciones de guardado mediante propiedades.

  • 15 Modelos en línea

    Vamos a aprender a manejar los modelos en línea en base a la relación FK del mismo.

  • 16 Personalizar métodos de gestión CRUD

    Vamos a aprender a ejecutar código personalizado antes o después de una operación CRUD.

  • 17 Validaciones personalizadas

    Vamos a aprender a crear validaciones personalizadas.

  • 18 Configurar la configuración regional (localización)

  • 19 Crear el slug de los elementos automáticamente en Django admin

    Vas a generar el slug de manera automática.

  • 20 Tema y archivos estáticos CSS, JS...

    Vamos a aprender a incluir archivos estáticos en Django Admin.

  • 21 Publicar en Github

    Publicar en Github

Formularios

  • 1 Introducción

  • 2 Presentación

    Vamos a presentar los forms y modelForms en Django.

  • 3 Form para los elementos

    Vamos a crear un formulario para los elementos y compararlos con los de tipo ModelForm.

  • 4 Vista para procesar el formulario

    Vamos a crear la vista/controlador para procesar un formulario.

  • 5 Reto: Crea un ModelForm para los elementos

    Vamos a crear un modelForm para los elementos de manera demostrativa y compararlo con los formularios de Django.

  • 6 Listado

    Vamos a crear el listado para los elementos.

  • 7 Validaciones: Introducción

    Vamos a dar una introducción a las validaciones y crearemos una.

  • 8 Mostrar los errores de validación

    Vamos a aprender a mostrar los errores de manera individual.

  • 9 Extra: Corrección de rutas

    Vamos a corregir una advertencia con las rutas.

  • 10 Validaciones personalizadas

    Vamos a crear validaciones personalizadas para los formularios.

  • 11 Referenciar los campos y labels del formulario individualmente

    Vamos a dar un repaso para referenciar campos del formulario de manera individual.

  • 12 Form Assets (Media class): Introducción

    Vamos a dar una introducción a los widgets en Django.

  • 13 Form Assets (Media class): Atributo widget

    Vamos a aprender a personalizar los atributos en Django mediante los widgets.

  • 14 Form Assets (Media class): Clase widget

    Vamos a personalizar los campos de formulario mediante una clase.

  • 15 Form Assets (Media class): Clase widget parte 2

    Vamos a crear una clase personalizada sobrescribiendo el render para el renderizado del campo.

  • 16 Form Assets (Media class): Tipos de campos

    Vamos a conocer como variar entre tipos de campos HTML en Django.

  • 17 Form Assets (Media class): Modificar atributos

    Vamos a aprender a modificar los atributos de los campos.

  • 18 Form Assets (Media class): Django widgets

    Vamos a conocer cómo emplear los widgets que provee Django, como el de calendario y hora.

  • 19 field group

    Vamos a conocer mostrar todos los datos de un formulario con un solo atributo.

  • 20 Publicar en github

Templates: Plantillas maestras, etiquetas y filtros

  • 1 Introducción

  • 2 Presentación

    Vamos a hablar de lo que vamos a ver en esta sección y lo que hemos visto de los templates.

  • 3 Template maestro

    Vamos a conocer cómo heredar contenido de los templates.

  • 4 Reutilizar plantillas desde otras aplicaciones

    Vamos a aprender a reutilizar la plantilla maestra en otras plantillas.

  • 5 Incluir templates o fragmentos

    Vamos a aprender a trabajar con los fragmentos de templates sin parámetros.

  • 6 Fragmentos de templates y parámetros

    Vamos a conocer como pasar parametros en los fragmentos de templates.

  • 7 Otros usos de los bloques en los templates

    Vamos a conocer otras opciones de los bloques en Django.

  • 8 Etiquetas lógicas: if y for, presentación

    Vamos a conocer el uso de los condicionales y los for en Django Template.

  • 9 Programar nuestras propias etiquetas

    Vamos a aprender a programar nuestras propias etiquetas.

  • 10 Filtros: Presentación

    Vamos a realizar una presentación de los filtros.

  • 11 Filtros: cut

    Vamos a conocer el primer filtro que permite remover textos.

  • 12 Filtros: date

    Vamos a conocer un filtro para formatear las fechas.

  • 13 Filtros: now

    Vamos a conocer un filtro para obtener la fecha actual.

  • 14 Filtros: lower

    Vamos a conocer un filtro para convertir los textos a minúsculas.

  • 15 Filtros: upper

    Vamos a conocer un filtro para convertir los textos a mayúsculas.

  • 16 Filtros: add

    Vamos a conocer un filtro para sumar.

  • 17 Filtros: with

    Vamos a conocer un filtro para crear variables en el template.

  • 18 Filtros: cycle

    Vamos a conocer un filtro para imprimir un texto diferente por cada iteración.

  • 19 Filtros: default

    Vamos a conocer un filtro para dar un valor por defecto cuando el contenido es nulo o falso.

  • 20 Filtros: length

    Vamos a conocer un filtro para medir la longitud de un array o texto.

  • 21 Filtros: safe

    Vamos a conocer un filtro para imprimir contenido HTML que venga desde la vista.

  • 22 Filtros: join

    Vamos a conocer un filtro para convertir un array en texto separados por el carácter.

  • 23 Filtros anidados

    Vamos a aprender a anidar o emplear varios filtros en una sola operación.

  • 24 Programar nuestros propios filtros

    Vamos a aprender a crear nuestros propios filtros.

  • 25 Cambiar de motor de plantilla - Jinja2

    Vamos a hablar sobre el motor de Jinja 2 para emplearlo en lugar del de Django Template.

  • 26 Publicar en Github

Trabajando con QuerySets

  • 1 Introducción

  • 2 Crear un objeto

    Vamos a ver cómo crear un objeto y crear un registro.

  • 3 Obtener un objeto

  • 4 Actualizar un objeto

    Vamos a ver cómo actualizar un registro en vez de crear.

  • 5 Recuperando objetos

    Vamos a ver cómo obtener un pull de registros.

  • 6 Filtrar objetos

    Vamos a conocer cómo emplear los filtros para agregar condiciones WHERE.

  • 7 Excluir resultados

    Vamos a aprender cómo excluir resultados.

  • 8 Ordenar

    Vamos a aprender a ordenar resultados.

  • 9 Eliminación de objetos

    Vamos a aprender a eliminar registros.

Crear una Api Rest con Django Rest Framework

  • 1 Introducción

  • 2 Presentación

    Vamos a presentar DRF, su importancia y su uso básico.

  • 3 Instalar paquete y configurar

    Vamos a instalar DRF y crear una app en Django.

  • 4 Definir serialización

    Vamos a definir la presentación de los datos.

  • 5 Definir viewset (view)

    Vamos a crear la capa que se encarga de procesar la petición del usuario.

  • 6 Rutas

    Vamos a crear las rutas para la API.

  • 7 Pruebas con la Rest Api

    Vamos a realizar algunas pruebas con la rest api.

  • 8 Problemas al momento de crear/actualizar un elemento

    Vamos a hablar sobre el problema con las relaciones FKs al momento de crear un elemento.

  • 9 Personalizar clases ViewSets

    Vamos a crear un viewset personalizado para los elementos.

  • 10 Habilitar la paginación

    Vamos a habilitar la paginación para los listados.

  • 11 many=true, relación inversa

    Vamos a conocer cómo emplear la opción de many.

  • 12 Métodos personalizados para las serializaciones

    Vamos a conocer cómo crear columnas o atributos artificiales en la serialización.

  • 13 Métodos personalizados para los viewset

    Métodos personalizados para los viewset

  • 14 Métodos adicionales

    Métodos adicionales

  • 15 Métodos hooks en los viewsets

    Hablaremos de cómo es posible personalizar los métodos para crear, actualizar y eliminar.

  • 16 Autenticación: Presentación

    Vamos a presentar el contenido que veremos para autenticar la rest api, los tipos y configuraciones.

  • 17 Autenticación: Sesión y básica

    Vamos a conocer cómo emplear la autenticación mediante sesión y básica.

  • 18 Autenticación: Token: Configuración base

    Vamos a comenzar las configuraciones para realizar la autenticación con tokens.

  • 19 Autenticación: Token: Función login

    Vamos a crear la función de login para generar el token.

  • 20 Autenticación: Token: Función login

    Vamos a crear la función de login para generar el token.

  • 21 Configurar los CORS

    Vamos a configurar los CORS para consumir la Rest Api en la siguiente sección desde la app en Vue.

  • 22 Publicar en github

Sobre algunas secciones

  • 1 Sobre algunas secciones

Aplicación con Vue 3, NaiveUI, consumir Api Rest

  • 1 Introducción

  • 2 Vue CLI

    Vamos a instalar Vue CLI.

  • 3 Crear el proyecto

    Vamos a crear un proyecto con proyecto en Vue.

  • 4 Instalar y configurar Vue Router

    Vamos a instalar y configurar Vue Router

  • 5 Instalar axios y primera petición

    Vamos a instalar axios.

  • 6 Crear un repositorio en git

    Vamos a crear un repositorio con github.

  • 7 Crear un listado de categorías

    Vamos a crear una página de listado para las categorías.

  • 8 Tarea: crear un listado de tipos

    Tarea: crear un listado de tipos

  • 9 Navegación entre páginas

    Vamos a aprender a navegar entre páginas.

  • 10 Sobre, Instalar, configurar y primeras pruebas con naive UI

    Vamos a hablar sobre Componente de tabla para las categorías y tiposnaive UI.

  • 11 Componente de tabla para las categorías y tipos

    Vamos a crear un componente de tabla para nuestros listados.

  • 12 Space: Contenedor

    Vamos a crear un contenedor de tipo Space.

  • 13 Layout: Esqueleto básico

    Vamos a crear una estructura base de la web.

  • 14 Menú: con componente menu

    Vamos a crear el modelo de menú.

  • 15 Menú: Establecer el RouterLink

    Vamos a adaptar el menú para que funcione con un router-link.

  • 16 Adaptar menú en un componente aparte

    Vamos a crear un componente en Vue para el menú.

  • 17 Menú: Opciones de listado dinámicas

    Vamos a crear un listado con las categorías y tipos en la Rest Api.

  • 18 Header para las categorías y tipos

    Vamos a crear un header con un menú.

  • 19 Botones para los RouterLink

    Vamos a modificar los routerLink con un diseño de botón.

  • 20 Integrar Tailwinds.css

    Vamos a instalar Tailwind.css en en proyecto.

  • 21 Adaptar detalles visuales

    Adaptaremos ciertos detalles visuales con Tailwinds.

  • 22 Listado de elementos

    Vamos a crear el listado de elementos.

  • 23 Extra: Agrupar rutas

    Vamos a dar un mejor agrupado a las rutas.

  • 24 Listado de elementos por categoría

    Vamos a obtener un listado de elementos por categorías.

  • 25 Tarea: Listado de elementos por tipo

    Vamos a obtener un listado de elementos por tipos.

  • 26 Extra: Introducción a sobrescribir el tema de NaiveUI

    Vamos a conocer cómo sobrescribir el estilo.

  • 27 Vista de detalle de los elementos

    Vamos a crear la vista de detalle.

  • 28 Publicar en git

Aplicación en Vue 3: CRUD y formularios

  • 1 Introducción

  • 2 Formulario para categorías, estructura inicial

    Vamos a crear el esqueleto inicial para la creación.

  • 3 Formulario para categorías, crear

    Vamos a crear una categoría mediante un formulario en Vue.

  • 4 Formulario para categorías, manejo de errores

    Vamos a mostrar los errores del formulario.

  • 5 Formulario para categorías, editar

    Vamos a adaptar el proceso para editar un registro.

  • 6 Tarea: Formulario para tipos

    Vas a realizar el formulario de crear y editar para los tipos.

  • 7 Formulario para los elementos, esquema inicial

    Vamos a crear la estructura inicial para el formulario de elementos.

  • 8 Formulario para los elementos, armar listados

    Vamos a completar el formulario de elementos cargando los tipos y categorías desde la rest api.

  • 9 Integrar CKEditor

    Vamos a configurar el plugin anterior en el proyecto.

  • 10 Habilitar el CSS de CKEditor

    Vamos a habilitar el CSS para nuestro editor.

  • 11 Publicar en git

Vue 3: Ajuste

  • 1 Activar opciones del menú de categorías y tipos

    Vamos a cargar los enlaces para la opción de categoría y tipos en los menús.

  • 2 Acomodar fecha elementos

    Vamos a dar formato a la fecha.

  • 3 Redireccionar en Vue Router

    Vamos a realizar redirecciones desde la definición de las rutas.

  • 4 Cambios visuales

    Vamos a trabajar en otros cambios visuales.

  • 5 Múltiples router-views: Título en el base

    Vamos a trabajar con múltiples router-views.

Vistas basadas en clases (CBV): Web de libros

  • 1 Introducción

  • 2 Crear proyecto y aplicación

    Vamos a comenzar un nuevo proyecto y con esto la estructura base.

  • 3 Crear modelo inicial

    Vamos a crear el modelo inicial para la aplicación

  • 4 Crear formulario inicial

    Vamos a crear el formulario inicial para la aplicación.

  • 5 Crear las primeras CBV para manejar el formulario y de éxito

    Vamos a presentar algunas clases basadas en vistas, la de formulario y genérica.

  • 6 UpdateView: Actualizar

    Vamos a conocer la VBC para actualizar.

  • 7 CreateView: Crear

    Vamos a conocer la VBC para crear.

  • 8 DeleteView: Borrar

    DeleteView: Borrar

  • 9 DetailView: Detalle

    Vamos a conocer la VBC para el detalle.

  • 10 IndexView: Listado

    Vamos a conocer la VBC para el listado.

  • 11 Publicar en git

Vistas basadas en clases (CBV): Autenticación

  • 1 Introducción

  • 2 LoginView: Vista para el login

    Vamos a presentar la VBC para el login.

  • 3 LogoutView: Vista para el logout

    Vamos a presentar la VBC para cerrar sesión.

  • 4 PasswordChangeView: Vista para cambiar la contraseña

    Vamos a presentar la VBC para cambiar la contraseña.

  • 5 PasswordChangeRest: Vista para cambiar restablecer la contraseña

    Vamos a presentar la VBC para restablecer la contraseña.

  • 6 Descargar, cualquier archivo existente

    Descargar, cualquier archivo existente

Manejar archivos

  • 1 Introducción

  • 2 Presentación

    Vamos a hablar del contenido a mostrar en esta sección.

  • 3 Crear un proyecto y aplicación

    Vamos a crear el proyecto y aplicación inicial.

  • 4 CSV: Primeros pasos

    Vamos a dar los primeros pasos para trabajar con los archivos csv.

  • 5 CSV: Leer

    Vamos a leer un archivo csv.

  • 6 CSV: Leer, Diccionario

    Vamos a leer un archivo csv.

  • 7 CSV: Escribir un archivo

    Vamos a aprender a escribir un archivo.

  • 8 CSV: Escribir un archivo

    Vamos a aprender a escribir un archivo.

  • 9 Cerrar archivo y palabra reservada with

    Vamos a repasar la importancia de cerrar los recursos con los cuales se está trabajando, como los archivos y el uso de la palabra reservada with.

  • 10 XLSX: Crear aplicación

    Vamos a crear la aplicación para este módulo.

  • 11 XLSX: Leer

    Vamos a aprender a leer un archivo.

  • 12 XLSX: Escribir

    Vamos a aprender a escribir un archivo.

  • 13 Generar PDFs: Crear aplicación

    Vamos a crear la aplicación para este módulo.

  • 14 Generar PDFs: Generar un PDF a partir de una página HTML

    Vamos a aprender a generar un PDF en base a un HTML.

  • 15 Generar PDFs: Weasyprint otras opciones

    Vamos a conocer como personalizar el tamaño, CSS y generar el PDF mediante un string HTML.

  • 16 Generar PDFs: Generar un PDF a partir de un Canvas

    Vamos a aprender a generar un PDF mediante un canvas con reportlab.

  • 17 Círculos, rectángulos y líneas, colores...

    Vamos a conocer algunas funciones para dibujar y cambiar colores entre otras características.

  • 18 Descargar, cualquier archivo existente

    Vamos a aprender a descargar cualquier archivo.

  • 19 Descargar PDF, reporlab

    Vamos a descargar el PDF generado por el plugin de reporlab.

  • 20 Publicar en github

    https://github.com/libredesarrollo/curso-libro-django-archivos

Django Channels: Single Channel

  • 1 Introducción

  • 2 Django Channels, Presentación

    Hablaremos sobre los websockets, servidores WSGI, ASGI, comunicacion sincrona y asincrona.

  • 3 Crear proyecto e instalar dependencias

    Vamos a crear el proyecto y la aplicación en Django.

  • 4 Configurar proyecto y servidor con channels[daphne]

    Vamos a configurar el servidor de channels

  • 5 Crear modelos de ejemplo y data de ejemplo

    Vamos a crear los modelos de mensajes y habitaciones y crear algo de data de prueba.

  • 6 Consumer: Primeros pasos y creación

    Vamos a crear nuestro primer consumer para recibir y enviar un mensaje.

  • 7 Cliente (Vista y Template): Estructura base

    Vamos a crear los templates y estructura base.

  • 8 Cliente (Vista y Template): WebSocket, Abrir canal

    Vamos a crear el JS para abrir el canal del WS.

  • 9 Cliente (Vista y Template): WebSocket, Terminal implementación

    Vamos a completar la implementación, enviar los mensajes y recibirlos.

  • 10 Instalar Bootstrap 5

    Vamos a instalar B5 en el proyecto.

  • 11 Configurar aplicación con B5

    Vamos a configurar el estilo de la aplicación empleando componentes de B5.

  • 12 Publicar en github

Django Channels: Multiple Channels

  • 1 Introducción

  • 2 Presentación

  • 3 Redis: MacOS

    Vamos a instalar redis en MacOS empleando DBngin.

  • 4 Channels Redis: Instalar

    Vamos a instalar channels redis.

  • 5 Channels Redis: Configurar

    Vamos a configurar channels redis.

  • 6 Modificaciones en la aplicación de chat: Primera parte

    Vamos a realizar los cambios iniciales en la aplicación tipo chat para pasar los a múltiples channels.

  • 7 Modificaciones en la aplicación de chat: Enviar mensajes

    Vamos a enviar mensajes en múltiples channels.

  • 8 Cambios en el cliente

    Vamos a hacer los cambios en el cliente para mostrar los datos adicionales.

  • 9 Convertir el consumer a código asíncrono

    Convertiremos el consumer a tipo asíncrono.

  • 10 Publicar en Github

DRF, Django Channels y Vue: Aplicación de mensajes de alertas

  • 1 Introducción

  • 2 Presentación

  • 3 Instalaciones y configuraciones necesarias

    Veremos las instalaciones en Django necesarias, que serían, DRF, Cors.

  • 4 Modelo de alerta

    Creamos el modelo de alertas.

  • 5 Serialización de alerta

    Creamos el serializer de alertas.

  • 6 Autenticación mediante tokens

    Vamos a crear el método de login para generar el token y obtener todos los alerts.

  • 7 Verificar métodos anteriores

    Vamos a probar los métodos anteriores.

  • 8 Consumer

    Creamos el consumer para las alertas.

  • 9 Crear proyecto en Vue

    Creamos un componente en Vue.

  • 10 Instalar y configurar dependencias en Vue

    Instalamos y configuramos las dependencias.

  • 11 Componente Vue: Login

    Vamos a crear el componente de Login para realizar el login y guardar el token en la cookie.

  • 12 Componente Vue: Logout

    Vamos a crear el componente de Logout para eliminar el token.

  • 13 Componente para enviar y recibir mensajes

    Vamos a implementar la primera parte del envío de mensajes.

  • 14 Middleware para la autenticación por token en el consumer: Teoría

    Vamos a conocer la estructura base sobre cómo funciona la autenticación en Django Channels y con esto, conocer los siguientes pasos que tenemos que seguir para autenticar el usuario.

  • 15 Middleware para la autenticación por token en el consumer: Estructura base

    Vamos a crear un middleware para la autenticación.

  • 16 Middleware para la autenticación por token en el consumer

    Vamos a terminar la implementación y realizando casos de prueba.

  • 17 Mostrar mensajes de alerta por usuario

    Vamos a mostrar los mensajes de alertas.

  • 18 Diseño aplicado

    Vamos a mostrar el diseño aplicado.

  • 19 Selección de habitaciones

    Vamos a implementar la selección de habitaciones para conectarse al canal.

  • 20 Toques finales

    Vamos a definir algunos detalles visuales.

  • 21 Publicar en github

  • 22 Extra: Bloquear el textarea al conectarse al websocket y mostrar mensaje de carga

    Vamos a bloquear el textarea y mostrar un mensaje de conectando al entrar en el componente de mensajes y se este conectando al WS.

  • 23 Extra: Destruir token de autenticación en el servidor

    Vamos a destruir el token de autenticación al hacer el logout.

Pruebas Unitarias

  • 1 Introducción

  • 2 Presentación

  • 3 Pruebas matemáticas

    Vamos a conocer la esencia de las pruebas unitarias con un ejemplo.

  • 4 Preparar entornos

    Vamos a escoger el proyecto y configurarlo para esta sección.

  • 5 ¿Qué vamos a probar?

    Vamos a hablar sobre cómo vamos a llevar a cabo el resto de la sección.

  • 6 Test Client en Django, primeros pasos

    Vamos a conocer el client de Django para realizar peticiones HTTP a la app.

  • 7 Test Client en Django mediante clases

    Vamos a implementar la prueba mediante clases.

  • 8 TestCase: setUp

    Vamos a conocer cómo inicializar datos a nivel de las clases.

  • 9 Herramientas para realizar las pruebas

    Vamos a conocer algunos métodos de tipo assert.

  • 10 Contexto de las pruebas unitarias

    Hablaremos sobre el contexto o ambiente en el cual se realizan las pruebas. https://www.desarrollolibre.net/blog/django/pruebas-unitarias-en-django

  • 11 Crud de Comentarios: Index

    Vamos a crear una prueba para el de index.

  • 12 Repaso

    Vamos a hacer un pequeño repaso del as clases anteriores.

  • 13 Crud de Comentarios: Crear - Get

    Vamos a realizar la prueba para el proceso de crear la petición de tipo get.

  • 14 Crud de Comentarios: Crear - Post

    Vamos a realizar la prueba para el proceso de crear la petición de tipo post y crear un comentario.

  • 15 Reto: Crud de Comentarios: Actualizar

    Vas a realizar la prueba para el proceso de actualizar la petición de tipo get y post.

  • 16 Reto: Crud de Comentarios: Eliminar

    Vamos a crear la prueba al momento de eliminar un comentario.

  • 17 Otros métodos de aserción: assertRedirects

    Vamos a conocer un método de tipo aserción con la cual evaluaremos la ruta a la cual se redirecciona.

  • 18 Otros métodos de aserción: assertTemplateUsed

    Vamos a conocer un método de tipo aserción con la cual verificamos el template usado.

  • 19 Otros métodos de aserción: assertHTMLEqual

    Vamos a conocer un método de tipo aserción con la cual evalúa la semántica de un contenido HTML.

  • 20 Formularios: Campos

    Vamos a crear una prueba para solamente los formularios en la cual, evaluaremos los campos que tienen que estar definidos.

  • 21 Formularios: Válido

    Vamos a crear la prueba para probar si el formulario es válido.

  • 22 Formularios: Inválido

    Vamos a crear la prueba para probar si el formulario es inválido.

  • 23 Formularios: Crear

    Vamos a crear la prueba para probar cuando el formulario guarda un nuevo registro.

  • 24 Formularios: Actualizar

    Vamos a crear la prueba para probar si el formulario actualiza un registro.

  • 25 Mejorar la estructuras de archivos y carpetas de las pruebas

    Vamos a cambiar la estructura de carpetas que tenemos en la aplicación.

  • 26 Ejecutar determinadas pruebas

    Vamos a conocer cómo ejecutar determinadas pruebas.

  • 27 Api: Paginados

    Vamos a crear una prueba para probar el recurso paginado de la api de comentarios.

  • 28 Api: Detalle

    Vamos a crear una prueba para probar el recurso de detalle de la api de comentarios.

  • 29 Api: Detalle con Serialización

    Vamos a crear una prueba para probar el recurso de detalle de la api de comentarios pero, empleando la clase de serialización de los comentarios.

  • 30 Api: Crear

    Vamos a crear una prueba para probar el recurso de crear.

  • 31 Api: Actualizar

    Vamos a crear una prueba para probar el recurso de actualizar.

  • 32 Api: Eliminar

    Vamos a crear una prueba para probar el recurso de eliminar.

  • 33 Probar CommentSerializer

    Vamos a crear una prueba para la serialización de los comentarios.

  • 34 Api: Formulario con errores de validación

    Vamos a crear dos pruebas para validar los errores de validación.

  • 35 Api: Preparar clase

    Vamos a crear la clase con el método de setUp con los datos de prueba.

  • 36 Api: Paginados

    Vamos a comenzar a realizar la prueba para la paginación.

  • 37 Api: Formatear el JSON

    Vamos a formatear y comparar un objeto para la paginación.

  • 38 Api: Crear Elemento

    Vamos a crear un elemento en la API.

  • 39 Api: Actualizar Elemento

    Vamos a crear una prueba para probar el recurso de actualizar.

  • 40 Api: Formulario con errores de validación

    Vamos a crear dos pruebas para validar los errores de validación.

  • 41 Api: Eliminar Elemento

    Vamos a crear una prueba para probar el recurso de eliminar.

  • 42 Probar ElementSerializer

    Vamos a crear una prueba para la serialización de los comentarios.

  • 43 Autenticación

    Veremos cómo autenticar al usuario para hacer las pruebas.

  • 44 Factory

    Hablaremos sobre cómo generar el request mediante el factory.

  • 45 Publicar en github

    Código fuente del capitulo: https://github.com/libredesarrollo/libro-curso-django-base/releases/tag/v0.6

Autenticación personalizada

  • 1 Introducción

  • 2 Crear proyecto y aplicación

    Vamos a crear el proyecto y la aplicación en Django.

  • 3 Exponer rutas de autenticación

    Vamos a exponer las rutas para manejar la autenticación en Django.

  • 4 Sobrescribir template de login

    Vamos a implementar el template para el login.

  • 5 Ejecutar migraciones y crear superusuario

    Vamos a ejecutar las migraciones y crear un superusuario.

  • 6 Parámetro next

    Vamos a implementar la lógica para el parámetro next.

  • 7 Habilitar archivos estáticos

    Vamos a aprender a usar los archivos estáticos como los CSS, JS, imágenes, entre otros.

  • 8 Instalar Bootstrap y Fontawesome

    Vamos a configurar estas tecnologías en nuestro proyecto.

  • 9 Crear un template maestro

    Crearemos un template maestro.

  • 10 Especificación de atributos HTML con django-widget-tweaks

    Instalaremos un paquete para poder modificar los atributos de los campos de formulario.

  • 11 login.html

    Maquetamos la página de login.

  • 12 Mensaje de alerta

    Crearemos una plantilla para mostrar mensajes.

  • 13 password_change_form.html

    Maquetamos la página para cambiar la contraseña.

  • 14 password_change_done.html

    Maquetamos la página de éxito al cambiar la contraseña.

  • 15 password_reset_form.html

    Maquetamos la página para recuperar la contraseña.

  • 16 password_reset_done.html

    Maquetamos la página de éxito al recuperar la contraseña.

  • 17 Extra: Envio de correos, configurar Mailtrap

    Vamos a conocer un servicio para enviar correos en testing.

  • 18 password_reset_confirm.html

    Maquetamos la página para recuperar la contraseña una vez enviado el token por correo y tenemos la página de colocar la nueva contraseña.

  • 19 password_reset_complete.html

    Maquetamos la página de éxito al cambiar la contraseña.

  • 20 Registrar: Estructura inicial de la vista

    Crearemos el esbozo para registrar un usuario.

  • 21 Registrar: Formulario

    Crearemos el formulario para registrar usuarios.

  • 22 Registrar: Estructura inicial de la vista

    Crearemos el esbozo para registrar un usuario.

  • 23 Demo: Registrar: Formulario personalizado

    Vamos a crear el formulario para crear el usuario de manera demostrativa empleado la clase de UserCreationForm.

  • 24 Perfil: Estructura base

    Vamos a crear la vista base de perfil para poder colocar el formulario de login.

  • 25 Cargar el avatar: Modelo

    Vamos a crear un modelo adicional para personalizar el usuario, especificamente para la carga del avatar.

  • 26 Cargar el avatar: Definir formulario

    Vamos a crear el formulario para el avatar.

  • 27 Cargar el avatar: Emplear formulario

    Vamos a aprender a procesar el formulario.

  • 28 Cargar el avatar: Buscar userprofile existente

    Vamos a buscar un perfil existente y establecerlo en el formulario cuando este exista.

  • 29 Cargar el avatar: Configurar MEDIA_ROOT

    Vamos a crear el media_root para el proyecto.

  • 30 Cargar el avatar: Eliminar imagen del avatar anterior

    Vamos a eliminar la imagen anterior al momento de cargar la imagen.

  • 31 Cargar el avatar: Validaciones de archivo (avatar)

    Vamos a aplicar algunas validaciones a la imagen.

  • 32 Otros campos: Modelo, Formulario y migración

  • 33 Otros campos: Template

    Vamos a realizar los cambios en el modelo.

  • 34 Mostrar información de perfil: Usuario autenticado

    Vamos a mostrar datos básicos del usuario autenticado.

  • 35 Mostrar información de perfil: Avatar

    Voy a mostrarte los cambios realizamos para mostrar la imagen del avatar del usuario.

  • 36 Publicar en github

Signals

  • 1 Introducción

  • 2 Presentación

  • 3 Implementar un signal

    Vamos a crear el primer signal que se ejecuta cuando se inserta un registro en la BD.

  • 4 Publicar en github

Introducción

  • 1 Presentación del curso

Introducción al curso

  • 1 Estructura del curso

    Este es un curso bastante grande con muchos módulos de lo cual vamos de lo más básico a aspectos más avanzados, por lo tanto, el flujo u orden del curso es secuencial...

  • 2 Requisitos para tomar el curso

    Para tomar el curso lo único que necesitas es tener conocimientos básicos en la programación, no es indispensable saber Python ya que tenemos una sección de reforzamiento...

  • 3 Instalar Python

    Vamos a enseñar como podemos instalar Python y algunas consideraciones a tener en cuenta.

  • 4 Instalar Visual Studio Code

    Vamos a instalar el IDE que vamos a emplear en este curso para desarrollar nuestras aplicaciones en Python y Django.

  • 5 Configurar nuestro Editor

    Vamos a crear la carpeta de nuestro proyecto que vamos a emplear en esta sección para realizar las distintas pruebas y conocer Python.

  • 6 Software necesario

    Vamos a hablar sobre parte del software necesario para este curso.

Python básico

  • 1 Sobre la sección

    En esta sección vamos a dar un repaso básico a Python; siéntete libre de saltar esta sección si consideraras que ya cuentes con dichos conocimientos y quieres ir a desarrollar de una tu primera aplicación en Django.

  • 2 Variables

    Vamos a conocer como podemos crear variables en Python.

  • 3 Tipos de datos

    Vamos a conocer los tipos de datos en Python; string, flotantes, enteros y booleanos.

  • 4 Operadores

    Vamos a conocer el uso de los operadores matemáticos en Python.

  • 5 Más datos sobre el String

    Vamos a dar algunos datos extras sobre el string para contar longitudes, reemplazar ocurrencias etc.

  • 6 String Format (Formato de los String)

    Vamos a conocer otra característica interesante sobre los String que sería el formato para imprimir o concatenar distintos tipos de datos y dando como salida un String.

  • 7 Listas

    Vamos a presentar una estructura que nos permitirá guardar colecciones de enteros, string, etc en una variable.

  • 8 Condicionales

    Vamos a ver cómo podemos emplear los condicionales en Python.

  • 9 For Python

    Vamos a ver el uso de los ciclos for en python para iterar listas.

  • 10 Funciones

    Vamos a conocer el uso de las funciones en Python, pase de parámetros y retornos de valores.

  • 11 Clases

    Vamos a crear nuestra primer clase, así como atributos métodos y constructores y crear una instancia de la misma.

  • 12 Enums

    Vamos a ver el uso de los tipos enumerados en Python para crear constantes.

  • 13 Diccionarios

    Vamos a conocer la estructura llamada diccionario para crear estructuras de tipo clave valor.

  • 14 Try except: errores y excepciones

    Vamos a conocer cómo podemos manejar los errores en tiempo de ejecución en nuestra app.

Conociendo el mundo de Python, pip y Django

  • 1 Sobre los ambientes virtuales de Python y el curso

    Vamos a hablar sobre el uso de los venv en nuestro curso.

  • 2 Introducción

  • 3 Presentando el módulo administrador

    Vamos a habilitar y hacer las primeras pruebas con el módulo administrador.

  • 4 Sobre el resto de la sección

    Sobre el resto de la sección

  • 5 Nuestro primer proyecto

    Vamos a crear el primer proyecto en Django mediante la línea de comando.

  • 6 Proyecto vs aplicación

    Vamos a hablar en qué consiste esta organización de proyectos y aplicaciones que hace Django.

  • 7 Nuestra primera aplicación

    Vamos a crear nuestra primera aplicación en Django.

  • 8 Creando nuestra primera vista

    Vamos a crear algo funciona, que sería una vista que devuelva un hola mundo.

  • 9 Configurando la base de datos en SQLite

    Vamos a aprender a configurar la base de datos que de momento, vamos a emplear SQLite.

  • 10 Creando los modelos

    Vamos a crear nuestros modelos en la app polls creada anteriormente.

  • 11 Creando las migraciones y las tablas en base de datos

    Vamos a crear las migraciones gracias a los modelos generados anteriormente.

  • 12 Emplear la consola interactiva de Django para gestionar registros

    Vamos a emplear la consola interactiva de Django para hacer las primeras pruebas con nuestro modelo de datos.

  • 13 Arreglando la representación de la impresión del registro

    Vamos a modificar como se muestra la impresión de los registros por la consola.

  • 14 Presentando el módulo administrador

    Vamos a habilitar y hacer las primeras pruebas con el módulo administrador.

  • 15 Crear vistas personalizadas en la app de polls

    Vamos a crear vistas personalizadas para imprimir el question_id que va a ser pasado como parámetro a estas vistas.

  • 16 Obtener un poll o conjunto de registros

    Vamos a conectarnos a nuestra base de datos para obtener los registros de las preguntas y mostrarlas en un string separado por comas.

  • 17 Crear un template para nuestro listado

    Vamos a crear un template o vista sencilla para mostrar el listado de preguntas.

  • 18 Detallando un poco más el ejemplo anterior

    Vamos a detallar un poco más lo que hicimos en el ejemplo anterior.

  • 19 Compactando la invocación de nuestro template render

    vamos a limpiar un poco más el uso de los template con un nuevo método.

  • 20 Página de detail: mostrar página de 404 si la question no existe

    Vamos a comenzar a trabajar con la página de 404 para cuando las question no existan.

  • 21 Página de detail: mostrar página de 404 si la question no existe (2° forma)

    Vamos a ver otro mecanismo más corto para mostrar errores 404 cuando un ID no existe.

  • 22 Crear página de detalle

    Vamos a crear la página/template inicial para el detalle.

  • 23 Mejorando la vista de detalle: pintando los choice

    Vamos a pintar los choice del question seleccionado.

  • 24 Vista de resultado

    Vamos a crear la vista de resultado.

  • 25 Usando rutas con nombre

    Vamos a configurar una ruta con nombre para ir de una vista a otra mediante los enlaces.

  • 26 Crear formulario para enviar un voto

    Vamos a crear un formulario para enviar un voto.

  • 27 Procesar la petición del formulario: sumar un voto

    Vamos a hacer la parte del controlador de la vista que desarrollamos anteriormente, sumar un voto.

  • 28 Creando Vistas genéricas

    Vamos a ver una característica muy interesante de django, que es el uso de las vistas genéricas de django y reutilizar vistas existentes mediante clases.

  • 29 Cargar archivos estáticos: CSS, JS...

    Vamos a conocer un mecanismo con el cual podemos cargar archivos estáticos en django.

  • 30 Personalizar el Admin: Agregar modelos para automatizar el CRUD

    Vamos a empezar a personalizar el módulo de admin de django, en esta oportunidad agregar modelos para poder emplear el sistema de crud de django.

  • 31 Personalizar el Admin: Dividir en secciones el formulario

    Vamos a conocer como podemos dividir el formulario en secciones.

  • 32 Personalizar el Admin: Agregar el modelo de Choice

    Vamos a agregar otro modelo, para nuestra app de admin.

  • 33 Personalizar el Admin: Agregar modelos relacionados en un formulario

    Vamos a conocer cómo podemos vincular formularios de choice al momento de definir un formulario de question.

  • 34 Personalizar el Admin: Columnas personalizadas para el listado

    Vamos a definir de manera manual cuales son las columnas que queramos que aparezcan cuando construimos el listado.

  • 35 Personalizar el Admin: Filtrar en el listado

    Vamos a agregar filtros al listado.

  • 36 Personalizar el Admin: Campo de búsqueda en el listado

    Vamos a agregar un campo de búsqueda al listado.

  • 37 Personalizar el Admin: Personalizar layout del admin

    Vamos a personalizar el Laporta del admin con CSS.

Crear app de listados de productos

  • 1 Introducción

  • 2 Crear proyecto y aplicación

    Vamos a crear un nuevo proyecto y aplicación en django.

  • 3 Crear modelos iniciales

    Vamos a crear los modelos con la estructura que vamos a emplear para la siguiente sección.

  • 4 Configurar base de datos en MariaDB

    Vamos a aprender a configurar una base de datos en MySQL en django.

  • 5 Crear y ejecutar migraciones

    Vamos a crear las migraciones y luego ejecutarlas para que se generen las tablas en base de datos.

  • 6 Registrar modelos en la app de Admin y llenar algunos datos

    Vamos a registrar los modelos en la app de Admin para poder generar algunos datos de prueba.

  • 7 Configurar la función __str__

    Vamos a configurar la función ser para la impresión de un objeto de un modelo.

Crear Rest Api con Django REST framework

  • 1 Introducción

  • 2 Instalar Django Rest Framework

    Vamos a instalar el toolkit para poder configurar una Rest Api en django.

  • 3 Crear estructura para la Rest Api - modelo Element

    Vamos a crear nuestros primeros recursos para la Rest API, mediante el modelo de element vamos a crear todas las operaciones tipo CRUD mediante la Rest.

  • 4 Crear el resto de los recursos modelos Category y Type

    Vamos a crear los recursos tipo CRUD para el resto de los modelos.

  • 5 Presentar la Api Rest

    Vamos a hacer una pruebas con la Rest API desde el navegador.

  • 6 Probar todos los métodos de la Rest Api mediante Postman

    Vamos a hacer conexiones a la Rest API mediante postman.y probar todos los recursos tipo CRUD.

  • 7 Más información para personalizar métodos de la Rest Api

    Vamos a dar más información sobre los archivos creados. que más pueden hacer para nuestra Rest Api.

  • 8 Crear métodos personalizados: Elementos dado la categoría

    Vamos a crear un método personalizado para obtener los elementos dado la categoría.

  • 9 Crear métodos personalizados: Elementos dado el tipo

    Vamos a replicar el desarrollo anterior para los tipos.

***Legacy*** Aplicación con Vue 2

  • 1 Secciones legacy

  • 2 Introducción

    Introducción a la sección

  • 3 Presentación Vue

    Vamos a dar algunos detalles sobre Vue.

  • 4 Instalar el ecosistema necesario, Node y Vue Cli

    Vamos a instalar el ecosistema necesario para desarrollar nuestras apps con Vue Cli.

  • 5 Crear un proyecto en Vue Cli

    Vamos a crear nuestro primer proyecto mediante Vue Cli.

  • 6 Explicar estructura de un proyecto con Vue Cli

    Vamos a explicar la estructura de un proyecto generado mediante la Vue Cli.

  • 7 Crear el Hola Mundo en Vue

    Vamos a crear nuestro Hola Mundo en Vue.

  • 8 Los ciclos en Vue, atributos y concatenación en Vue

    Vamos a presentar los ciclos, para iterar elementos.

  • 9 Métodos y evento click en Vue

    Vamos a crear un método que imprima un mensaje por consola en base a un evento click de nuestro usuario.

  • 10 Los fetch para obtener recursos: Realizar una petición a nuestra Rest Api

    Vamos a presentar los fetch, como mecanismo para conectarnos mediante HTTP y conseguir datos de manera asíncrona.

  • 11 Instalar y configurar django-cors-header

    Vamos a superar el bloqueo que tenemos al realizar una petición a otro servidor en django.

  • 12 Consumir fetch desde Vue

    Vamos a consumir un recurso de la Rest de django mediante Vue.

  • 13 Ciclo de vida de una aplicación en Vue

    Vamos a explicar el ciclo de vida de una aplicación en Vue y ver que podemos sacar de esto para mejorar la app.

  • 14 Instalar Vue Bootstrap

    Vamos a instalar Vue Bootstrap para mejorar el aspecto de nuestra app.

  • 15 Crear una carta con los elementos

    Vamos a crear nuestro primer componente en Bootstrap Vue que sería el de la carta, para nuestro listado.

  • 16 Definir el layout container

    Vamos a crear un container para nuestro contenido.

  • 17 Demo: Crear una tabla con los elementos

    Vamos a ver una demostración, y vamos. a crear una tabla mediante Vue Bootstrap.

  • 18 Crear página para el detalle de un componente

    Vamos a crear un navbar para nuestra app mediante Vue Bootstrap.

  • 19 Crear un componente de navegación

    Vamos a crear un boceto para la página de detalle.

  • 20 Vue Router: Habilitar la navegación entre componentes (SPA)

    Vamos a construir una web SPA con Vue Router.

  • 21 Vue Router: crear enlace para el componente de detalle

    Vamos a crear un enlace para poder navegar entre componentes de la web SPA.

  • 22 Crear componente de listado de categorías

    Vamos a crear un componente de listado para todas las categorías.

  • 23 Crear componente de listado de tipos

    Vamos a crear un componente de listado para los tipos.

  • 24 Crear enlaces de categorías y tipos para el Header

    Vamos a crear todos los enlaces de categorías y tipos anteriores en nuestro navbar.

  • 25 Componente de listado de elementos dado la categoría

    Vamos a crear el listado de elementos seleccionado una categoría y conectarnos a nuestra Rest para obtener el listado.

  • 26 Crear componente genérico de listado de elementos

    Vamos a crear un componente de listado genérico.

  • 27 Definir el listado principal con el listado genérico

    Vamos a modificar el componente de listado principal con el componente genérico de listado.

  • 28 Componente de listado de elementos dado el tipo

    Vamos a replicar el componente de listado genérico para los tipos.

  • 29 Los watch para observar cambios

    Vamos a presentar los watch para observar cambios sobre propiedades u otros elementos.

  • 30 Colocar los listados de categorías y tipos al lado

    Vamos a alinear los listados de categorías y tipos.

  • 31 Mejorar el componente de carta para el listado de elementos

    Vamos a mejorar la presentación de nuestro listado genérico para los elementos.

  • 32 Mejorar el componente de carta para el detalle de elementos

    Vamos a mejorar la presentación del componente de detalle.

  • 33 Pintar la categoría y el tipo en el detalle

    Vamos a dar más te talle sobre la categoría seleccionada indicando a qué tipo y categoría pertenece.

  • 34 Hacer peticiones para obtener detalle de la categoría y el tipo

    Vamos a construir más peticiones para obtener el detalle de la categoría y tipo.

  • 35 Instalar axios para realizar peticiones asíncronas

    Vamos a instalar axios, que es un cliente similar al fetch que empleamos para hacer las peticiones para ver una variante.

  • 36 Hacer peticiones mediante axios en la vista de detalle

    Vamos a hacer un ejercicio para hacer peticiones mediante axios.

  • 37 Corregir [vue-router] missing param for named route ... Expected "id"

    Vamos a corregir un error que quedó pendiente al integrar los enlaces de categoría y tipo en el detalle del elemento.

  • 38 Siguientes pasos

    Vamos a hablar sobre lo construido hasta este punto y que necesitamos para seguir avanzando.

Manejo de formularios en Django

  • 1 Introducción

  • 2 Crear una app para los comentarios

    Vamos a crear una nueva app con la cual vamos a trabajar con comentarios.

  • 3 Crear modelo y migración para los comentarios

    Vamos a crear el modelo inicial.

  • 4 Crear un listado de los comentarios

    Vamos a crear la función y vista asociada a la vista de index, el listado.

  • 5 Crear formulario para agregar un comentario

    Vamos a crear un formulario para agregar comentarios empleando Django Form Model.

  • 6 Personalizar el formulario

    Vamos a personalizar atributos del formulario.

  • 7 Definir el formulario en HTML para enviar la petición

    Vamos a definir el resto del cuerpo para que funcione el formulario.

  • 8 Validar y procesar el formulario desde el controlador

    Vamos a validar el formulario y hacer el procesamiento del mismo para luego guardar el mismo en BD.

  • 9 Hacer redirección al momento de crear un elemento

    Vamos a aprender a hacer una redirección con los shortcut de django.

  • 10 Actualizar un comentario

    Vamos a crear otro método, basado en el de creación para actualizar un comentario mediante los formularios de django.

  • 11 Commit: No registrar los cambios en base de datos

    Vamos a conocer cómo emplear un atributo de los save para guardar los datos en la base de datos o no.

  • 12 Método save personalizado

    Vamos a personalizar el método de save para hacer operaciones previas antes de guardar.

  • 13 Ver errores del formulario

    Vamos a ver cómo podemos obtener y mostrar los errores del formulario.

  • 14 Creando formularios personalizados

    Vamos a crear un formulario personalizado o genérico en django.

  • 15 Errores de formulario

    Vamos a ver como podemos ver los errores en los formularios y realizar algunas pruebas más.

  • 16 Explorando otros campos de formulario y completando el mismo

    Vamos a crear un formulario un poco más completo con otros tipos de campos.

  • 17 Instalar Bootstrap 4

    Vamos a instalar el toolkit de Bootstrap para nuestra aplicación.

  • 18 Sobre Bootstrap 5

  • 19 Personalizar campos de formulario con las clases de Bootstrap 4

    Vamos a instalar un módulo adicional de Python para que nuestro formulario pueda tomar el estilo de Bootstrap.

  • 20 Crear un container

    Vamos a crear un container para nuestro formulario.

  • 21 Mostrar errores agrupados en un componente de Bootstrap

    Vamos a mostrar los errores agrupados en un listado.

  • 22 Validators/Validaciones

    Vamos a trabajar con las validaciones sobre los campos de formulario.

  • 23 Widgets

    Vamos a trabajar con los widgets, que viene siendo el mecanismo que tenemos para personalizar el campo de formulario.

  • 24 Campo de subir archivos y booleano

    Vamos a crear un par de campos para trabajar con los archivos y booleanos.

  • 25 Procesar formulario datos básicos

  • 26 Crear modelo para contacto

    Vamos a crear un par de campos para trabajar con los archivos y booleanos.

  • 27 Procesar formulario: archivos y datos básicos

    Vamos a procesar todo el contacto de formulario y guardar los datos en la base de datos.

  • 28 Crear un listado de tipo de negocio: ChoiceField/Tupla

    Vamos a crear un sencillo select o campo de selección con datos estáticos de una tupla.

  • 29 Crear modelo para tipo de contacto

    Vamos a crear un modelo para manejar el tipo de contacto.

  • 30 Crear un listado de tipo de negocio: ModelChoiceField/Modelo

    Vamos a presentar el uso de los campos de selección atados a un modelo o consulta.

  • 31 Crear un listado de sexo: ChoiceField/Tupla

    Vamos a crear otro listado genérico para trabajar con el sexo y una tupla estática.

  • 32 Carga de archivos opcional

    Vamos a permitir que la carga de archivos sea opcional.

  • 33 Redireccionar al momento de crear el contacto

    Vamos a crear una redirección al momento de crear el contacto.

  • 34 Mensajes flash por sesión

    Vamos a conocer los mensajes flash en django.

  • 35 Mostrar mensaje flash en un componente de alert

    Vamos a mejorar el aspecto de los mensajes mostrados vía flash.

  • 36 Mejorar el aspecto del formulario

    Vamos a mejorar el aspecto del formulario.

  • 37 Detalles funcionales finales sobre el formulario

    Vamos a aplicar algunos cambios finales sobre el formulario.

Manejo de templates en Django y trabajando con Bootstrap 4 o 5

  • 1 Introducción

  • 2 Include: para incluir fragmentos de vista

    Vamos a conocer una directiva para incluir fragmentos de vista en otra vista.

  • 3 Crear template maestro

    Vamos a empezar a definir un template maestro para la app de coments.

  • 4 extends y block: Define una plantilla maestra

    Vamos a conocer el uso de los block y extends para crear una plantilla maestra.

  • 5 Emplear plantilla maestra en el resto de la aplicación

    Vamos a extender el uso de la plantilla maestra.

  • 6 Crear un header con opciones navegables

    Vamos a crear un header o navbar que nos ofrece en Bootstrap 4.

  • 7 Activar el JavaScript de Bootstrap 4 o 5

    Vamos a activar el JavaScript de Bootstrap 4 para que funcionen ciertos componentes del navbar.

  • 8 Crear un footer

    Vamos a crear un sencillo footer para la app.

  • 9 Etiqueta autoescape HTML

    Vamos a presentar una etiqueta para escapar o no contenido HTML y JavaScript.

  • 10 Comentarios en el template

    Vamos a aprender a crear comentarios de distintos propósitos en django template.

  • 11 La etiqueta cycle

    Vamos a presentar la etiqueta cycle.

  • 12 Filtros en los template

    Vamos a presentar los filtros y trabajar con algunos de ellos.

  • 13 Más etiquetas y operaciones con los template

    Vamos a hablar un poco más de qué más podemos hacer con los template en django.

Rest Api con Django REST framework parte 2

  • 1 Introducción

  • 2 Crear relación de uno a muchos entre (One to Many) entre elements y comentarios

    Vamos a crear una relación entre muchos a uno opcional entre los comentarios y los elementos.

  • 3 Obtener el detalle de la categoría, tipo y comentarios para los elementos

    Vamos a dar más detalle al elemento, con los modelos relacionados.

  • 4 Obtener el detalle de la categoría y el tipo

    Vamos a obtener todo el detalle de la categoría y del tipo en la Rest.

  • 5 Recurso de comentario

    Vamos a habilitar el recurso tipo Rest para los comentarios de los elementos.

  • 6 Modo solo lectura para las categorías y tipos

    Vamos a habilitar el modo solo lectura para las categorías y los tipos.

  • 7 Habilitar la paginación

    Vamos a habilitar la paginación para toda la Rest Api.

  • 8 Obtener solo los comentarios con elementos asociados

    Vamos a modificar el recurso para los comentarios para que solamente devuelvan los que tengan establecidos un elemento.

  • 9 Método all para obtener todos los registros

    Vamos a implementar un conjunto de métodos para obtener todos los registros de nuestros modelos.

  • 10 Obtener detalle elemento por la URL limpia

    Vamos a obtener el detalle de un elemento por la url_limpia.

  • 11 Replicar la función en el resto de los métodos

    Vamos a replicar el ejercicio anterior en el resto de los métodos.

  • 12 Obtener cantidad comentarios en detalle de elementos

    Vamos a conocer como podemos crear variables personalizadas para nuestro json.

  • 13 Definir campo serializado para la cantidad de comentarios

    Script para definir serializado

Módulo de usuario y autenticación en Django

  • 1 Introducción

  • 2 Dando los primeros pasos para lograr la autenticación en la aplicación

    Vamos a explicar como funciona y cómo podemos configurar la aplicación de autenticación que nos ofrece Django.

  • 3 Configurando una app para el módulo de usuario

    Vamos a crear una aplicación para el módulo de usuario.

  • 4 Creando el template para el login

    Vamos a configurar el template inicial para el login.

  • 5 Adaptar un diseño para nuestro template de login

    Vamos a adaptar un diseño existente para la página de login.

  • 6 Personalizar alert de errores

    Vamos a personalizar los errores para que tomen el alert de Bootstrap.

  • 7 Pasar datos al template de alert

    Vamos a personalizar los errores para que se encuentren definidos en una página aparte.

  • 8 Pasar datos de manera opcional

    Vamos a aprender a pasar datos o variables de manera opcional.

  • 9 Personalizar url de logout

    Vamos a personalizar la URL de redirección del logout.

  • 10 Personalizar template de la vista de cambiar contraseña

    Vamos a personalizar el template para cambiar la contraseña.

  • 11 Demo: Ruta personalizada para las vistas: cambiar contraseña

    Vamos a ver una demostración de cómo podemos cambiar la ruta de los métodos que ya tenemos provistos para el manejo del módulo de usuario tomando como caso de estudio el de cambiar contraseña.

  • 12 Personalizar template de la vista de confirmación de cambiar contraseña

    Vamos a personalizar la vista (formulario) de confirmación de cambiar la contraseña.

  • 13 Personalizar template de la vista de recuperar contraseña

    Vamos a configurar la vista de confirmación para recuperar la contraseña.

  • 14 Configurar el envío de correo con Mailtrap

    Vamos a configurar rápidamente nuestro Django para que pueda enviar correos mediante Mailtrap, que es un servicio para envío de pruebas de emails.

  • 15 Configurar la página de confirmación (formulario de cambiar pass) del reinicio

    Vamos a configurar la página para recuperar la contraseña.

  • 16 Configurar la página de confirmación del reinicio de la contraseña

    Vamos a configurar la página de confirmación de recuperar la contraseña.

  • 17 Obtener datos del usuario autenticado

    Vamos a conocer el mecanismo que tenemos que seguir para obtener la información del usuario autenticado.

  • 18 Verificar si el usuario está o no autenticado

    Vamos a conocer como podemos preguntar si el usuario está o no autenticado.

  • 19 Proteger recursos mediante login requerido

    Vamos a aprender a proteger recursos para que solamente puedan ser consumidos si el usuario está autenticado.

  • 20 Demo: Mostrar al usuario valor del next

    Vamos a hacer una demostración de cómo emplear la variable next desde el login.

  • 21 Registrar usuario: Crear Vista base

    Vamos a crear la vista base para registrar un usuario.

  • 22 Registrar usuario: Procesar solicitud

    Vamos a procesar la solicitud para registrar un usuario.

  • 23 Registrar usuario: Autenticar al usuario tras el registro

    Vamos a hacer el proceso de autenticación tras el registro.

  • 24 Registrar usuario: Personalizar el formulario, colocar un campo para el email

    Vamos a registrar un nuevo campo para el email en el formulario de UserCreationForm.

  • 25 Registrar usuario: Registrar cambios en la base de datos

    Vamos a registrar el nuevo cambio (email) en la base de datos.

  • 26 Registrar usuario: Guardar formularios en forms.py

    Vamos a hacer un cambio de nombre en el archivo de los formularios.

  • 27 Registrar usuario: Definir enlaces de navegación entre login/registrar

    Vamos a colocar los enlaces correctos entre las vistas de login y registrar.

  • 28 Perfil: Reestructura de la vista de perfil

    Vamos a hacer un acomodo visual en la vista de perfil.

  • 29 Cargar el avatar: Definir vista base, modelo y formulario (OneToOne)

    Vamos a crear la estructura base para cargar un avatar, que sería, un nuevo modelo, la vista base y el formulario.

  • 30 Cargar el avatar: Procesar solicitud

    Vamos a procesar la carga del archivo o avatar.

  • 31 Cargar el avatar: Identificador del usuario

    Vamos a establecer el ID del avatar al momento de guardar el registro.

  • 32 Cargar el avatar: Validar imagen cargada, dimensiones

    Vamos a establecer el ID del avatar al momento de guardar el registro.

  • 33 Cargar el avatar: Validar imagen cargada, tipo

    Vamos a aprender a hacer validaciones sobre la imagen que estamos cargando, específicamente por el alto y largo.

  • 34 Cargar el avatar: Validar imagen cargada, tamaño (kb)

    Vamos a aprender a hacer validaciones sobre la imagen que estamos cargando, específicamente el tipo.

  • 35 Cargar el avatar: Actualizar UserProfile existente

    Vamos a aprender a hacer validaciones sobre la imagen que estamos cargando, específicamente por el tamaño.

  • 36 Cargar el avatar: Consultar el userProfile desde el request

    Vamos a aprender a consultar el perfil del usuario desde el request.

  • 37 Cargar el avatar: Configurar el MEDIA_URL para consumir la imagen

    Vamos a configurar el MEDIA_URL del proyecto que es empleado cuando cargamos un archivo.

  • 38 Cargar el avatar. Borrar archivo de avatar anterior

    Vamos a borrar el archivo o avatar anterior al momento de que se cargue el nuevo.

  • 39 Cargar el avatar: Servir (pintar) la imagen o avatar

    Vamos a presentar la imagen en la vista.

  • 40 Avatar: Dar formato al avatar de nuestro usuario y validar si perfil existe

    Vamos a mejorar el aspecto de la imagen cargada y verificar si el perfil existe.

  • 41 Avatar: Acomodar el estilo del formulario

    Vamos a cargar acomodar el estilo del formulario para que tome un mejor aspecto.

  • 42 Avatar: Acomodar el estilo del formulario parte 2, JavaScript

    Vamos a implementar el código JavaScript para variar el contenido del label según el archivo cargado.

Extra: Aspectos generales

  • 1 Los ambientes virtuales para desarrollar nuestras aplicaciones

    Vamos a hablar sobre los ambientes virtuales en Python y cómo emplearlos en el curso.

  • 2 Enviar Email (SMTP Mailtrap)

    Vamos a aprender a enviar un email mediante en Django.

  • 3 Enviar Email con contenido HTML (SMTP Mailtrap)

    Ahora vamos a enviar el mismo email pero con contenido HTML.

  • 4 Paginación: Primeros pasos

    Vamos a conocer cómo nosotros podemos crear un sistema de paginación.

  • 5 Paginación: Construyendo listado de comentarios

    Vamos a ver un caso práctico para paginar los registros de los comentarios.

  • 6 Paginación: Construyendo un listado de páginas genéricas

    Vamos a construir un sistema genérico de paginación del listado.

  • 7 Paginación: Adaptar el listado de páginas genéricas a Bootstrap 4

    Vamos a adaptar el trabajo anterior para que tenga un diseño de Bootstrap 4.

  • 8 Logging: Manejo de los logs y generación de msj

    Vamos a conocer cómo podemos trabajar con los logs en Django.

  • 9 Criptografía: Proteger datos sensibles

    Vamos a conocer el uso de la criptografía para firmar textos.

  • 10 CSV: Exportar datos

    Vamos a ver un ejemplo sencillo para exportar a CSV.

  • 11 CSV: Exportar nuestros contactos

    CSV: Exportar nuestros contactos

  • 12 Traducción estándar en Django: Presentación

    Vamos a comenzar con la traducción de nuestra app y vamos a conocer los mecanismos necesarios para hacer esta labor.

  • 13 Traducción estándar en Django: Generar textos a traducir

    Vamos a generar los textos que queremos traducir.

  • 14 Traducción estándar en Django: Generar archivos de lenguaje/mensaje

    Vamos a generar los archivos de traducción a partir de los textos.

  • 15 Traducción estándar en Django: Probar nuestra aplicación

    Vamos a probar la app y terminar de configurar la misma para que funciona con los archivos de traducción.

  • 16 Traducción estándar en Django: Imprimer en los templates

    Vamos a imprimir los string de traducción en un template.

  • 17 Sesión: Guardar y eliminar datos

    Vamos a conocer el uso de la sección en django para registrar datos.

Crear una pequeña Tienda en Línea

  • 1 Introducción

  • 2 Crear estructura inicial de la sección

    Vamos a crear una nueva app y registrarla en nuestro proyecto.

  • 3 Crear listado de elementos

    Vamos a crear un listado inicial de elementos.

  • 4 Mejorar el aspecto de la vista de listado

    Vamos a mejorar el aspecto de nuestro listado.

  • 5 Crear página de detalle empleando las vistas genéricas

    Vamos a crear una vista de detalle, empleando las vistas genéricas de Django.

  • 6 Consumir vista de detalle por la url_clean/slug

    Vamos a consumir la vista de detalle por el slug o la url limpia.

  • 7 Consumir vista de detalle por el id y el url_clean/slug

    Vamos a consumir una página tanto por el slug como por la pk.

  • 8 Crear buscador: Crear formulario

    Vamos a crear el HTML de un formulario para realizar una búsqueda.

  • 9 Crear buscador: Buscar por el título

    Vamos a crear la parte funcional en nuestra Views, para realizar la búsqueda.

  • 10 Crear buscador: Filtro por categoría

  • 11 Crear buscador: Valores anteriores

    Vamos a preservar los valores seleccionados por nuestro usuario en el filtro en HTML.

  • 12 Crear cuenta en el sitio de desarrolladores de PayPal

    Vamos a conocer que necesitamos para realizar un pago vía PayPal.

  • 13 Sobre la SDK de PayPal empleada para desarrollar el proyecto

    Sobre la SDK de PayPal empleada para desarrollar el proyecto

  • 14 Crear funciones para procesar la respuesta de PayPal

    Vamos a crear una función para realizar un pago de prueba.

  • 15 Definir una columna para el precio del modelo elements

    Vamos a agregar una columna de precio para nuestro modelo de elementos.

  • 16 Configurar un pago de PayPal con un producto

    Vamos a configurar el pago PayPal a un producto.

  • 17 Crear página para mostrar el link de pago

    Vamos a crear una página para mostrar el link de pago.

  • 18 Definir modelo para guardar los pagos de un usuario autenticado

    Vamos a crear un modelo para guardar los pagos realizados vía PayPal.

  • 19 Crear constructor del modelo payments

    Vamos a crear un método constructor que se encargue de crear un objeto Payment.

  • 20 Verificar si el usuario está autenticado al momento de hacer el pago

    Vamos a verificar que el usuario esté autenticado en ciertos procesos claves.

  • 21 Procesar la respuesta del pago vía PayPal

    Vamos a procesar la respuesta de PayPal en nuestra función.

  • 22 Colocar las claves de acceso de PayPal en las configuraciones del proyecto

    Vamos a definir las credenciales de PayPal en el archivo de settings.

  • 23 Excepciones en el pago

    Vamos a capturar una posible excepción al momento de comunicarnos con PayPal.

  • 24 Emplear la REST API SDK for Python V2

    Vamos a hablar un poco sobre la SDK actual de PayPal y su integración con nuestro proyecto.

  • 25 Instalar la SDK de PayPal y configurar pago de la aplicación

    Vamos a procesar la respuesta de PayPal una vez realizado el pago de un producto.

  • 26 Procesar el pago de la aplicación

    Vamos a procesar la respuesta de PayPal una vez realizado el pago de un producto.

  • 27 Ventana de detalle del pago: Error en el constructor

    Vamos a corregir el constructor para crear un Payment.

  • 28 Ventana de detalle del pago: Terminar diseño

    Vamos a terminar el diseño inicial de nuestra página de detalle.

  • 29 Listado de pagos: Vista inicial

    Vamos a crear la vista inicial para mostrar todos los pagos.

  • 30 Listado de pagos: Retribuir los datos relacionales en una misma consulta

    Vamos a hacer unas pruebas para mostrar el elemento asociado al pago realizado y ver y reparar el problema de obtener datos adicionales según la relación foránea.

  • 31 Listado de pagos: colocar la vista de detalle

    Vamos a mostrar el enlace en el listado para ver el detalle de una compra.

  • 32 Listado de pagos: Todos los pagos por el usuario

    Vamos a ver solamente los pagos del usuario autenticado.

  • 33 Mostrar solamente elementos de tipo product en el index

    Vamos a ver solamente los elementos de tipo producto.

Extra: Paquetes imprescindibles para Django

  • 1 Introducción

  • 2 Easy Thumbnails: Generar imágenes pequeñas fácilmente

    Vamos a aprender a crear imágenes de pequeñas dimensiones fácilmente.

  • 3 Django import / export: Primeros pasos

    Vamos a aprender a exportar datos desde nuestro módulo de admin; primero veremos cómo realizar la instalación.

  • 4 Django import / export: Exporta datos fácilmente

    Vamos a aprender a exportar datos desde nuestro módulo de admin.

  • 5 Django import / export: Importar Datos fácilmente

    Vamos a aprender a importar datos desde nuestro módulo de admin.

  • 6 Django Debug Toolbar: Ve en detalle todo lo que sucede en tu aplicación

    Vamos a aprender un sencillo mecanismo que nos permitirá obtener datos fácilmente de lo que ocurre en nuestra app.

  • 7 Django rest framework: Construye tu Api Rest

    Vamos a hablar sobre un paquete que ya empleamos para construir una Api Rest en Django.

  • 8 Django Bootstrap Form: Personaliza el estilo de tus formularios

    Vamos a hablar sobre el paquete que empleamos para personalizar el estilo de los formularios en Django.

  • 9 Django Cors Headers: Habilita peticiones a tu app desde otras apps

    Vamos ha hablar sobre este paquete que permite habilitar las peticiones de apps de terceros a Django.

  • 10 Personalizar el diseño del módulo de admin

    Vamos a instalar y configurar un paquete para personalizar el layout de la app de admin.

Carga y proceso de imágenes de los productos en la app de Admin

  • 1 Introducción

  • 2 Definir el modelo para las imágenes de los productos

    Vamos a definir un modelo para poder cargar imágenes de productos.

  • 3 Registrar la relación de imágenes desde el formulario de Elementos en Admin

    Vamos a crear las relaciones necesarias para cargar imágenes desde la app de admin.

  • 4 Escalar y recortar (Scale/crop) la imagen cargada

    Vamos a aprender a escalar y cortar las imágenes que estamos cargando en un momento dado.

  • 5 Los signals para escuchar eventos o sucesos en nuestra app

    Vamos a conocer los signals, para escuchar eventos de nuestros procesos CRUD asociados a un modelo.

  • 6 Borrar imágenes asociadas al momento de borrar el registro

    Vamos a eliminar las imágenes una vez borrado el registro principal.

  • 7 Borrar imágenes al momento de cambiar un registro

    Vamos a eliminar las imágenes una vez cambiada el registro principal.

  • 8 Borrar archivo extra de la rescalada

    Vamos a borrar la imagen extra al momento de cambiar o eliminar el registro.

Trabajar en el diseño básico de nuestra tienda en línea

  • 1 Introducción

  • 2 Páginas o templates de referencia

    Vamos a hablar sobre el template que vamos a tomar de referencia.

  • 3 Crear archivo de CSS personalizado

    Vamos a crear un archivo CSS custom para nuestra tienda.

  • 4 Imágenes de muestra

    Vamos a ver de donde podemos obtener imágenes gratis y libres para nuestro proyecto.

  • 5 Adaptar el tamaño de la imagen a reescalar y cargar imágenes

    Vamos a adaptar la imagen personalizada que generamos mediante nuestra aplicación para que se ajuste a la del template o página boceto.

  • 6 Guardar nombre y extensión de la imagen

    Vamos a guardar el nombre de la imagen y la extensión en columnas apartes.

  • 7 Guardar ruta relativa

    Vamos a guardar la ruta relativa de la imagen.

  • 8 Cargar imágenes de muestra en la app

    Vamos a cargar algunas imágenes que vamos a emplear para desarrollar la app.

  • 9 Adaptar listado al del template

    Vamos a empezar la adaptación de la tienda en línea en django a la página del template.

  • 10 Cargar una imagen

    Vamos a colocar la imagen principal del elemento en nuestro listado.

  • 11 Cargar la imagen personalizada

    Vamos a colocar la imagen principal del elemento en nuestro listado.

  • 12 Traer todos los datos en un solo batch (prefetch_related)

    Vamos a aprender cómo podemos obtener también las imágenes desde el batch principal.

  • 13 Validar que la imagen exista en el listado

    Vamos a validar que al menos exista una imagen para el listado y colocar una imagen por defecto en caso de que no exista.

  • 14 Estilo para los filtros

    Vamos a darle estilo al filtro o formulario para la búsqueda.

  • 15 Colores por defecto

    Vamos a cambiar algunos colores base.

  • 16 Definir tipografía de Google Fonts

    Vamos a instalar una fuente tipográfica.

  • 17 Colocando un título

    Vamos a definir un título con un estilo para el index.

  • 18 Diseño de la paginación

    Vamos a variar el diseño para los enlaces de paginación.

  • 19 Página de detalle: Carrusel base

    Vamos a crear un carrusel o una galería para las imágenes del producto seleccionado.

  • 20 Página de detalle: Activar las imágenes

    Vamos a dejar seleccionado una imagen por defecto.

  • 21 Página de detalle: Definir los indicadores

    Vamos a definir un conjunto de indicadores para el carrusel.

  • 22 Página de detalle: Organizar el contenido en columnas

    Vamos a organizar el contenido de nuestra página de detalle en columnas.

  • 23 Página de detalle: Diseño para la carta

    Vamos a variar o adaptar el diseño para la vista de detalle.

  • 24 Instalar iconografía

    Vamos a instalar una iconografía para nuestra app.

  • 25 Definir algunos íconos para nuestra aplicación

    Vamos a definir algunos íconos para nuestra app.

Potenciando la Tienda en Línea

  • 1 Introducción

  • 2 Sistema de comentarios: Definir el modelo y las migraciones

    Vamos a definir el modelo y la tabla para los comentarios.

  • 3 Sistema de comentarios: Relaciones en el admin

    Vamos a crear la clase para gestionar los comentarios desde el admin.

  • 4 Sistema de comentarios: Crear el formulario

    Vamos a crear el formulario para agregar los comentarios.

  • 5 Sistema de comentarios: Procesar comentarios en la vista/controlador

    Vamos a procesar el comentario enviado por el usuario.

  • 6 Sistema de comentarios: Comentarios en el template

    Vamos a pintar los comentarios en el template.

  • 7 Sistema de comentarios: Formulario en el template

    Ahora vamos a pintar el formulario en el template.

  • 8 Sistema de comentarios: Detalles del aspecto del formulario

    Vamos a tocar ciertos aspectos visuales y funcionales en el bloque de comentarios que estamos hablando.

  • 9 Sistema de comentarios: Errores del formulario en un partial

    Vamos a colocar los errores del formulario en un template aparte.

  • 10 Sistema de comentarios: Comentar por usuario autenticado

    Vamos a realizar unas validaciones para que un usuario autenticado pueda saltarse algunos datos.

  • 11 Sistema de Tags: Instalar y configurar

    Vamos a instalar una aplicación para hacer etiquetables los modelos que definamos.

  • 12 Sistema de Tags: Agregar algunos tags a los Elementos

    Vamos a agregar algunas etiquetas a algunos elementos.

  • 13 Sistema de Tags: Gestionar algunos tags desde la shell/programáticamente

    Vamos a aprender a trabajar con los tags programáticamente.

  • 14 Sistema de Tags: Pintar los tags en la vista de detalle

    Vamos a colocar los tags dentro de la vista de detalle.

  • 15 Sistema de Tags: Crear filtrar por tags en listado

    Vamos a crear el filtro por tags para la vista de listado.

  • 16 Sitemap: Configuración inicial

    Vamos a hacer las configuraciones iniciales para mantener el sitemap.

  • 17 Sitemap: Preparar el modelo de elementos para el Sitemap

    Vamos a preparar el modelos de elementos para poder emplearlo al momento de generar el sitemap.

  • 18 Sitemap: Configurar en la app de Store

    Vamos a crear finalmente el sitemap.

  • 19 Sistema de cupones: Crear modelo y tabla

    Vamos a crear la estructura para manejar los cupones para una compra.

  • 20 Sistema de cupones: Relaciones en el admin

    Vamos a crear la relación con el admin.

  • 21 Sistema de cupones: Crear cupones en el admin

    Vamos a crear algunos cupones con los cuales trabajar.

  • 22 Sistema de cupones: Desarrollar el formulario para aplicar el cupón

    Vamos a crear el formulario que vamos a emplear para procesar el cupón.

  • 23 Sistema de cupones: Pintar el formulario del cupón en el template

    Vamos a pintar el formulario en nuestro template de detalle del elemento.

  • 24 Sistema de cupones: Dar estilo al formulario cupón

    Vamos a dar un poco de estilo al formulario del cupón.

  • 25 Sistema de cupones: Desarrollar la función para validar el cupón

    Vamos a desarrollar la función para procesar el cupón.

  • 26 Sistema de cupones: Consumir el cupón en la compra desde la vista de detalle

    Vamos a modificar la vista/controlador para que podamos hacer las verificaciones del cupón.

  • 27 Sistema de cupones: Consumir el cupón en la compra desde el template de detalle

    Vamos a hacer algunos cambios en la vista/template de detalle para que muestre información o estado del cupón.

  • 28 Sistema de cupones: Crear una vista para mostrar el detalle del cupón aplicado

    Vamos a crear una vista para mostrar la información del cupón aplicado al precio total.

  • 29 Sistema de cupones: Crear métodos para calcular el descuento

    Vamos a crear un par de funciones en el modelo para calcular el porcentaje de descuento en el precio total.

  • 30 Sistema de cupones: Crear un filtro personalizado para el descuento del cupón

    Vamos a crear un filtro para poder emplear las funciones definidas anteriormente en el template.

  • 31 Sistema de cupones: Crear columnas adicionales para el pago

    Vamos a crear unas columnas para guardar el ID del cupón, total sin descuento, total con descuento cupón y total a pagar

  • 32 Sistema de cupones: Adaptar los cupones para el pago

    Vamos a adaptar parte de la aplicación para que se pueda crear la intención de pago con el cupón.

  • 33 Sistema de cupones: Registrar el cupón al momento de hacer el pago

    Vamos a registrar un pago con cupón.

  • 34 Sistema de cupones: Generar slug automático para la url limpia de los elementos

    Vamos a aprender a generar la url_limpia de los elementos de manera automática con el título.

Extra: Crear una Rest Api manual con Django REST framework

  • 1 Crear aplicación

    Vamos a crear la aplicación que vamos a emplear en esta sección.

  • 2 Hacer importaciones iniciales

    Vamos a hacer la importación iniciales que vamos a emplear.

  • 3 Demo: Crear función manual que devuelve un json estático

    Vamos a aprender a devolver un json estático en Django.

  • 4 Demo: Crear función manual que devuelve un json

    Vamos a devolver un json, pero de elementos de nuestra base de datos.

  • 5 Crear función de obtener todos los productos

    Vamos a crear una función para obtener todos los elementos de tipo product empleando nuestro Django Rest Framowrk.

  • 6 Crear función para crear un elemento

    Vamos a crear la función para crear un elemento.

  • 7 Hacer peticiones al recurso de creación de un elemento

    Vamos a realizar peticiones mediante la web de DRF y postman.

  • 8 Obtener el detalle de un elemento

    Vamos a crear la funcionalidad para obtener el detalle de un elemento.

  • 9 Actualizar un elemento

    Vamos a desarrollar la funcionalidad para actualizar un elemento.

  • 10 Borrar un elemento

    Vamos a desarrollar la funcionalidad para borrar un elemento.

  • 11 Crear clases a partir de las funciones anteriores

    Vamos a crear una estructura de clases en base al esquema anterior.

  • 12 Probar el CRUD anterior

    Vamos a probar el desarrollo anterior en en navegador.

  • 13 Emplear los Mixin para hacer las operaciones CRUD

    Vamos a presentar los mixin de DRF para poder reutilizar funcionalidades comunes.

  • 14 Crear clases que hereden los mixins para hacer las operaciones CRUD

    Vamos a crear clases para los recursos empleando los mixins.

  • 15 Probar el CRUD anterior

    Vamos a probar el desarrollo anterior en en navegador.

  • 16 Crear clases que hereden los generic para hacer las operaciones CRUD

    Vamos a crear clases para los recursos empleando los generic.

  • 17 Paginación personalizada: Definir una clase de Paginación

    Vamos a crear una paginación personalizada para devolver la la respuesta desde la Rest Api.

  • 18 Agregar autenticación base

    Vamos a implementar un sencillo sistema de autenticación para la Rest Api.

  • 19 Agregar permisos de usuario

    Vamos a hacer que nuestra Rest Api emplee el mismo sistema de permisos que administramos en Django Admin.

  • 20 Agregar autenticación y permisos de manera global

    Vamos a agregar las configuraciones para los permisos y el usuario autenticado de manera global.

  • 21 Autenticación por tokens: Primeros pasos

    Vamos a conocer como podemos implementar una Api Rest en base a tokens.

  • 22 Autenticación por tokens: Función para realizar la autenticación y devolver el t

    Vamos a crear una función de autenticación en la Rest Api y que la misma devuelva el token.

  • 23 Autenticación por tokens: Proteger recursos y terminar configuraciones

    Vamos a crear unas configuraciones a nivel de proyecto y recursos para habilitar el tokenAuth.

Extra: Autenticación personalizada

  • 1 ¿Cómo funciona un módulo para la autenticación personalizada en Django?

    Vamos a explicar cuales son los componentes y configuraciones que tenemos que definir para realizar un backend personalizado para la autenticación.

  • 2 Creando una clase para la autenticación por email

    Vamos a crear el backend para realizar la autenticación por el email.

Extra: Autenticación Social con Django

  • 1 Introducción

  • 2 Primeros pasos con la autenticación social

    Vamos a explicar e instalar un paquete para manejar la autenticación social.

  • 3 Configurar una URL a nuestro proyecto y resolverla de manera local

    Vamos a configurar una URL en el SO para que la resuelva de manera local.

  • 4 Comandos e información de ayuda

    Esta página servirá de ayuda para los distintos elementos que tengamos que configurar e instalar en nuestro proyecto.

  • 5 Configurar un servidor SSL de desarrollo

    Vamos a configurar un SSL de desarrollo para nuestra app.

  • 6 Terminar las configuraciones para la autenticación social

    Vamos a terminar las configuraciones para el login social.

  • 7 Autenticación social con Google/Gmail: Crear credenciales

    Vamos a crear las credenciales para el login via Google.

  • 8 Autenticación social con Google/Gmail: Configurar en la app

    Vamos a crear las credenciales para el login via Google.

  • 9 Posibles problemas con Twitter

    Problemas con Twitter

  • 10 Autenticación social con Twitter: Crear credenciales

    Vamos a crear las credenciales para el login via Twitter.

  • 11 Autenticación social con Twitter: Configurar en la app

    Vamos a probar el login vía Twitter.

  • 12 Autenticación social con Facebook: Crear credenciales

    Vamos a crear las credenciales para el login via Facebook.

  • 13 Autenticación social con Facebook: Configurar en la app

    Vamos a probar el login via Facebook.

  • 14 Diseño para los botones sociales en la página de login

    Vamos a crear un sencillo diseño para nuestro botones para realizar el login.

Trabajando con la sesión: Creando la lógica para el carrito de compras

  • 1 Explicación y configuraciones iniciales

    Vamos a explicar qué es lo que vamos a crear en esta sección y hacer las configuraciones iniciales.

  • 2 Crear clase e Inicializar la sección para el carrito

    Vamos a crear la clase y la función para inicializar el carrito.

  • 3 Método para agregar un producto al carrito

    Vamos a crear la función de add, para agregar productos al carrito.

  • 4 Método para marcar la sección cómo modificada

    Vamos a crear una función para indicar que hubo cambios en la sesión.

  • 5 Método para remover un elemento de la sesión

    Vamos a crear la función para eliminar un producto de la sesión.

  • 6 Limpiar el carrito de compras

    Vamos a crear la función para eliminar todo el carrito de compras.

  • 7 Crear un iterable para la sesión

    Vamos a crear la función para hacer iterable nuestro carrito.

  • 8 Calcular el total del carrito

    Vamos a crear la función para calcular el total del carrito.

  • 9 Calcular la cantidad de elementos del carrito

    Vamos a crear la función para calcular el total de elementos en el carrito.

Implementando el carrito de compras

  • 1 Introducción

  • 2 Agregar un(os) producto(s) al carrito

    Vamos a desarrollar la funcionalidad para agregar un producto a nuestro carrito desde la vista de detalle de la tienda.

  • 3 Vista para editar el carrito

    Vamos a crear la vista para editar el carrito.

  • 4 Remover un item del carrito

    Vamos a crear la función para eliminar productos del carrito.

  • 5 Crear funcion ajax para devolver el total de productos en el carrito

    Vamos a crear una función ajax para obtener la cantidad de los productos del carrito.

  • 6 Consumir la cantidad de productos del carrito mediante fetch

    Vamos a consumir la función anterior mediante un fetch.

  • 7 Diseño del botón para el carrito de compras

    Vamos a crear un sencillo diseño para la opción de carrito de compras.

  • 8 Opcional: Actualizar carrito cada cierto tiempo

    Vamos a actualizar el estado del carrito cada cierto tiempo.

  • 9 Crear botón "Ver en el carrito"

    Vamos a crear un botón para ver el detalle del producto comprado en el carrito cuando estamos en la vista de detalle del producto y este se encuentra en el carrito.

  • 10 Editar las cantidades del carrito: Crear función ajax

    Vamos a crear una función en nuestro Django para actualizar la cantidad de un producto en el carrito.

  • 11 Editar las cantidades del carrito: Crear estructura y lógica

    Vamos a crear la lógica en HTML y JavaScript para incrementar o decrementar cantidades del carrito.

  • 12 Editar las cantidades del carrito: Enviar petición

    Vamos a enviar la petición para actualizar las cantidades en el servidor.

  • 13 Editar las cantidades del carrito: Soportar múltiples productos

    Vamos a adaptar la app para que soporte la edición de cantidades para múltiples productos.

  • 14 Actualizar el precio del carrito al momento de variar las cantidades

    Vamos a actualizar los precios al momento de variar las cantidades.

Los Canales (Websockets) en Django: app inicial de chat

  • 1 Introducción

  • 2 Creando el espacio virtual

    Vamos a crear un espacio virtual para nuestro nuevo proyecto.

  • 3 Creando un nuevo proyecto

    Vamos a instalar Django, crear un nuevo proyecto en Django con nuestro ambiente virtual.

  • 4 Configurando el proyecto y creando la aplicación

    Vamos a configurar el proyecto anterior, con MySQL, crear una app y todo lo necesario para dejarlo listo para empezar a desarrollar.

  • 5 Crear modelo de Room y migraciones

    Vamos a crear el modelo principal que vamos a emplear en la aplicación y las migraciones.

  • 6 Crear superusuario y data de prueba en el admin

    Vamos a crear un usuario superadmin para nuestra app y datos de prueba.

  • 7 Crear página base

    Vamos a crear el templete maestro de nuestra app.

  • 8 Crear página para el chat

    Vamos a crear la página base para nuestra app de chat.

  • 9 Instalar Channels en Windows - problema con mi instalación

    Vamos a hablar sobre la instalación de channels en Windows.

  • 10 Posibles extensiones necesaria para instalar Django Channels en Mac

    Si estas empleando Mac es posible que tenas que instalar las herramientas de linea de comando de XCode (Xcode Command Line Tools) para que pueda funcionar; desde tu terminal ejecuta el siguiente comando: xcode-select --install

  • 11 Instalar channels en Mac

    Vamos a hablar sobre la instalación de channels en Mac.

  • 12 Peticiones y respuestas (request/response) ASGI vs WSGI

    Vamos a hablar sobre los tipos de servidores web en Python web y Django.

  • 13 Los Customer Django Channels

    Vamos a hablar sobre los customers como componente fundamental en Django Channels.

  • 14 Configurar proyecto con channels de Django

    Vamos a configurar el proyecto una vez instalado Django Channels.

  • 15 WebSocket servidor: Crear un customer

    Vamos a crear el customer y ruteo en Django.

  • 16 WebSocket cliente: Conectarse mediante WS

    Vamos a configurar el cliente para enviar un mensaje mediante los web server.

  • 17 Enviar un mensaje

    Vamos a enviar un mensaje al servidor y obtener una respuesta de este.

  • 18 Enviar mensajes desde javaScript

    Vamos a terminar el ejercicio de chat en una sola dirección.

Los Canales en Django: Channels Layer para comunicar instancias de consumers

  • 1 Introducción

  • 2 ¿Qué es redis?

    Redis es un motor de base de datos, pero se diferencia de otros como MySQL a que este se especializa a guardar claves valores en diferentes tipos de datos, como si fueran diccionarios en Python o objetos en JavaScript (aunque también puede guardar datos de manera durable o persistente y también de manera volátil, es decir NO persistente)...

  • 3 Comunicación entre instancias de consumers

    Un channel layer o capa de canal en español, es el mecanismo que tenemos para comunicar múltiples instancias de canales; por lo tanto, esto para nosotros en el proyecto que estamos llevando a cabo significa que por ejemplo...

  • 4 Instalar redis en Mac o Linux

    Vamos a instalar redis en Mac, aunque puedes emplear pasos similares para instalarlo en Linux.

  • 5 Redis en Windows con Laragon

    Vamos a hablar sobre la habilitación de redis en Windows con Laragon.

  • 6 Instalar y configurar channels-redis

    Vamos a instalar el paquete para conectar Django Channels con redis.

  • 7 Comandos útiles para redis

    Vamos a hablar sobre algunos comandos útiles o que te pueden resultar de utilidad para saber el estado de redis.

  • 8 Comunicación por grupos: Consumer síncrono y métodos asíncronos

    Vamos a lograr la comunicación por grupos mediante el canal que configuramos anteriormente.

  • 9 Probar código anterior

    Vamos a testear el código definido anteriormente.

  • 10 Reemplazo a redis en ambiente de desarrollo con In-Memory Channel Layer

    Vamos a hablar de otra configuración que puedes realizar para trabajar con la comunicación con grupos en vez de redis en modo de desarrollo.

  • 11 Demo: Convertir el consumer a asincrono

    Vamos a hablar un poco sobre el proceso de convertir nuestro consumer de sincrono a asincrono.

  • 12 Demo: peticiones asíncronas con ajax de jQuery

    Vamos a ver una sencilla demostración empleando la función ajax de jquery para entender el uso de peticiones síncronas y asíncronas.

  • 13 Agregar contexto al mensaje desde el consumer

    Vamos a agregar más información al consumer, la fecha y el usuario, aparte del mensaje.

  • 14 Consumir datos desde el cliente

    Vamos a consumir los nuevos datos desde el cliente.

  • 15 Dar un formato diferente según el usuario en el chat

    Vamos a adaptar un diseño diferente según quien envía el mensaje.

Django Channels: Aplicación de Alertas

  • 1 Introducción

  • 2 Crear aplicación en Vue 3 con Vue Cli

    Vamos a crear la app en Vue para la app de alertas con websockets, explicar un poco en qué consiste esta sección.

  • 3 Crear aplicación de alerta en Django

    Vamos a crear una app de alertas en Django.

  • 4 Demo: Conectar Vue con el WebSocket existente

    Vamos a conectar una app en Vue a nuestro consumer en Django.

  • 5 Demo: Crear un middleware en Django

    Vamos a crear un middleware en Django que vamos a tomar como base para crear un middleware para Django Channels.

  • 6 Instalar y configurar Django Rest Framework

    Vamos a instalar y configurar DRF

  • 7 Middleware para Django Channels basado en autenticación por token

    Vamos a crear un middleware para Django channels y poder emplear la autenticación en la app de Vue.

  • 8 Crear un recurso rest para generar el token mediante DRF

    Vamos a crear un recurso rest para generar el token auth.

  • 9 Probar y terminar middleware

    Vamos a probar y terminar de configurar el middleware para Django Channels.

  • 10 Crear página de login en Vue y Bootstrap 5

    Vamos a instalar algunas dependencias como Bootstrap y axios para crear una sencilla página para el login.

  • 11 Instalar Django Cors Headers

    Vamos a instalar el paquete de cors para Django.

  • 12 Consumir el token y modificaciones en el recurso del login

    Vamos a consumir el token desde la app en Vue.

  • 13 Guardar token en una propiedad en Vue

    Vamos a instalar un paquete para trabajar con las Cookies en Vue.

  • 14 Guardar el token en una cookie

    Vamos a instalar un paquete para trabajar con las Cookies en Vue.

  • 15 Cargar y verificar token en la aplicación

    Vamos a cargar y verificar si el token existe en la cookie para hacer cambios en la interfaz.

  • 16 Botón para cerrar sesión

    Vamos a crear un botón para cerrar la sesión.

  • 17 Construir una caja para enviar un mensaje

    Vamos a construir un campo de texto para enviar mensajes mediante WS.

  • 18 Guardar mensajes/alertas en la base de datos

    Vamos a crear la estructura necesaria para guardar los mensajes/alertas en la base de datos.

  • 19 Crear recurso rest para obtener los mensajes por el token

    Vamos a crear un recurso rest para consumir los mensajes/alertas por el usuario autenticado.

  • 20 Consumir recurso rest de alertas: Crear estructura

    Vamos a crear el esqueleto para consumir el recurso de alerta que creamos anteriormente.

  • 21 Consumir recurso rest de alertas: Iterar mensajes

    Vamos a iterar y mostrar los mensajes o alertas del usuario.

  • 22 Django: Renombrar views por api

    Vamos a renombrar el archivo de views que es donde actualmente tenemos los recursos rest de la rest api porqué en los siguiente vídeos vamos a crear un método para mostrar todas las alertas de los usuarios en un solo lugar.

  • 23 Django: Crear módulo de listado de todas las alertas

    Vamos a crear un módulo para mostrar todas las alertas de los usuarios.

  • 24 Django: Crear listado de alertas en el template

    Vamos a crear el template para mostrar todas las alertas de los usuarios.

  • 25 Django: Actualizar listado mediante WS

    Vamos a actualizar el JS para que podamos emplear el WebSockets y actualizar el listado de manera automática.

Django Channels: Cambios generales en la app Vue

  • 1 Logout al detectar tokenAuth inválido

    Vamos a trabajar en desloguear automáticamente cuando el token auth NO sea válido.

Extra: Alpine JS, Introducción

  • 1 Introducción a Alpine.js

    Vamos a hablar un poco sobre el framework.

  • 2 Livewire y Alpine

    Vamos a comparar ambos frameworks.

  • 3 Preparar un proyecto

    Vamos a crear un proyecto para trabajar con Alpine.

  • 4 Mostrar contenido HTML con variables reactivas: x-data, click y x-show

    Vamos a conocer el esquema básico, con un componente para mostrar u ocultar bajo demanda.

  • 5 Campos de textos y variables: x-model y x-text

    Vamos a mapear una variable a un campo de texto.

  • 6 Atributos: x-bind

    Vamos a presentar el bind de atributos.

  • 7 Atributos: múltiples valores

    Vamos a trabajar con múltiples valores para los atributos.

  • 8 Atributos: style

    Vamos a trabajar con el atributo de estilos.

  • 9 Ciclos y condicionales: x-for y x-if

    Vamos a conocer el uso del for y condicional.

  • 10 Bloque de script

    Vamos a organizar el código anterior en un bloque de script.

  • 11 Introducción

    Introducción

  • 12 Aplicación de todo: Búsqueda

    Vamos a crear una aplicación tipo TODO, primero, el campo de búsqueda.

  • 13 Aplicación de todo: Crear Todos

    Vamos a crear todos.

  • 14 Marcar todo completada

    Vamos a realizar la opción marcar una tarea como completada.

  • 15 Eliminar todo

    Vamos a realizar la opción de eliminar un todo.

  • 16 Borrar todos los todos

    Vamos a realizar la opción de borrar todos los todos.

  • 17 Modificar un todo

    Vamos a realizar la opción de modificar un todo.

  • 18 Configurar Bootstrap 5

    Vamos a adaptar el estilo de B5 en la app.

  • 19 Extra: Guardar de manera persistente

    Extra: Guardar de manera persistente

  • 20 Publicar en git

  • 21 Atributo ref

Manejo de archivos CSVs y PDFs

  • 1 Introducción

  • 2 Crear un proyecto

    Vamos a crear un nuevo proyecto y aplicación y registrar el mismo a nivel del proyecto.

  • 3 Crear un CSV

    Vamos a crear un CSV.

  • 4 Leer un archivo

    Vamos a leer un CSV mediante Python.

  • 5 Leer un archivo diccionario

    Vamos a leer un CSV mediante Python en modo diccionario.

  • 6 Escribir un archivo

    Vamos a crear un CSV mediante Python.

  • 7 Escribir un archivo diccionario

    Vamos a crear un CSV mediante Python en modo diccionario.

  • 8 Palabra reservada with

    Vamos a conocer una variante al momento de trabajar con los archivos, que es indicando el contexto.

  • 9 Crear una aplicación

    Vamos a crear una nueva aplicación.

  • 10 Escribir un excel

    Vamos a conocer cómo podemos generar un archivo excel.

  • 11 Leer un excel

    Vamos a conocer cómo podemos leer un archivo excel.

  • 12 Leer un excel parte dos

    Vamos a explicar un poco más el paquete anterior.

  • 13 Weasyprint: Generar un PDF en base a una página web

    Generaremos un documento PDF a partir de una página web.

  • 14 Reportlab: Generar un PDF pixel a pixel: Imprimir un texto

    Generaremos un documento PDF a partir de un canvas

  • 15 Reportlab: Descargar un archivo

    Mostraremos como crear la opción de descarga del PDF

  • 16 Más pruebas con Reportlab

    Más pruebas con Reportlab

  • 17 Extra: Descargar archivo

    Extra: Descargar archivo

  • 18 Más pruebas con Reportlab

    Vamos a realizar algunas pruebas más con Reportlab.

  • 19 Extra: Descargar archivo

    Vamos a descargar cualquier archivo desde el proyecto.

  • 20 Publicar en git

Alpine y plugins externos: Sortable

  • 1 Introducción

  • 2 Sortable: Ordenable

    Vamos a instalar y configurar un plugin para hacer ordenable el listado.

  • 3 Publicar en git

Aplicación de TO DO con Django y Alpine

  • 1 Introducción

  • 2 Crear espacio virtual, proyecto y aplicación inicial

    Vamos a preparar el proyecto y esqueleto inicial.

  • 3 Migrar la aplicación de to do list a Django

    Vamos a crear su vista y template para la app de Alpine.

  • 4 Crear modelo y migración para los to do

    Vamos a crear el modelo y migración de los to do.

  • 5 Crear una Rest Api para los to do

    Vamos a crear una Rest Api en DRF.

  • 6 Instalar axios

    Instalar axios

  • 7 Popular listado de todos desde la Rest Api

    Vamos a mostrar el listado de to do desde la base de datos en Alpine.

  • 8 Crear to do desde Django

    Vamos a crear un to do desde Django y su api.

  • 9 Editar un todo

    Vamos a actualizar un to do.

  • 10 Eliminar un to do

    Vamos a eliminar un to do en la base de datos.

  • 11 Marcar completado un to do

    Vamos a marcar como completado un to do.

  • 12 Reordenación en base a IDs: Rest Api

    Vamos a presentar un esquema de ordenación en base a un array de IDs en el servidor.

  • 13 Sobre la reordenación

    Vamos a hablar de algunos posibles esquemas de ordenación.

  • 14 Reordenación en base a IDs: Cliente

    Vamos a presentar un esquema de ordenación en base a un array de IDs en el cliente.

  • 15 Mostrar todos ordenados

    Vamos a mostrar los todos ordenados al momento de ingresar a la página.

  • 16 Eliminar todos los to do

    Vamos a eliminar todos los to do.

  • 17 Proteger con autenticación requerida y realizar adaptaciones

    Vamos a definir la rest api como protegida con login.

Alpine JS: Otras características

  • 1 Introducción

  • 2 x-ignore, ignorar un bloque de HTML

    Veremos cómo ignorar un bloque de HTML.

  • 3 x-teleport, transportar un template

    Veremos cómo copiar el contenido de un componente en otra parte del DOM.

  • 4 x-effect, observar cambios en variables

    Veremos cómo detectar cambios en variables.

  • 5 $watch, observar propiedades

    Veremos cómo crear un observable.

  • 6 x-html, renderizar variables con HTML

    Veremos cómo imprimir contenido HTML.

  • 7 $id, crea IDs dinámicos y organizados

    Veremos cómo generar IDs dinámicos.

  • 8 $el, referencia al elemento

    Veremos cómo referenciar un elemento como si fuera un selector.

  • 9 $store, almacenar datos de manera global

    Veremos cómo almacenar datos en el store.

  • 10 $nextTick, Script luego de aplicar cambios en el DOM

    Veremos cómo verificar si los cambios fueron realizados por Alpine en el DOM.

  • 11 $dispatch, eventos personalizados

    $dispatch, eventos personalizados

  • 12 $root, acceder atributos en el root

    Vamos a conocer como acceder a atributos del root del componente.

  • 13 Plugin, máscaras

    Vamos a conocer un nuevo plugin para manejar la máscara de los inputs.

  • 14 Publicar en git

- Andrés Cruz

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.