Curso y Libro Crea tu Tienda en Línea con Django 5
Índice de contenido
Se recomienda adquirir el curso junto con el libro, ya que, el curso ofrece explicaciones más detalladas sobre el porqué de las cosas, en el libro, tienden a ser más generales. De esta forma, con la combinación de ambos, podrás tener la experiencia completa
Esta formación esta pensada para adquirir en paquete.
Está formación esta dirigida para aquellas personas que quieran aprender a crear una tienda en línea con Django o Python web en General ya que, también se implementara la tienda en línea en otros framewoks, específicamente con Flask y Fast API para tener la experiencia completa (entiendas que agarraremos el proyecto de Django y lo traduciremos a estos framewoks, solo el modulo para el usuario final -sin el dashboard-). Inicialmente usaremos Django que al usar Python tenemos todo el ecosistema que nos ofrece con las ventajas de apps bien modulares y escalables.
Adicionalmente, llevaremos el mismo proyecto (sin el modulo admin) a otros framewoks: Flask y Fast API. (Por hacer)
Este recurso es especial si lo comparamos con otros recursos en mi plataforma por los siguientes motivos:
Puntos claves
Antes de que adquieras este recurso, por favor, lee los siguientes puntos en los cuales, te comento las diferencias que tenemos con el resto de mis cursos para iniciales:
- Nivel medio-profesional: Se da por hecho de que el lector tiene al menos conocimientos básicos en Django que van desde las herramientas de desarrollo empleadas con VSC.
- Mas especifico: Es un libro en el cual el objetivo es crear una aplicación tipo tienda en línea con nuestros conocimientos en Django, por lo tanto, no tendrá el mismo enfoque que mis otros cursos/libros en donde la codificación depende del tema a presentar, y con esto, el desarrollo será más corto y conciso. Aquí el objetivo es únicamente la creación de la tienda en línea, por lo tanto, la tienda es el tema y lo que codifiquemos depende del objetivo a cumplir para la tienda.
- No es paso a paso: Es importante hacer énfasis en el punto anterior, para esta formación, NO ofrecemos un paso a paso para TODO, entiéndase que hay procesos como los dashboards, que muchas veces NO lo implementamos desde cero, si no, se muestra la implementación en base a una presentación (curso) y es por eso que mencionamos que es para un nivel medio-profesional, ya que, evitamos perder tiempo en procesos ya conocidos como los mencionados, de esta forma, se busca que inviertas tu tiempo en lo más importante, conociendo procesos y lógicas únicas.
- Código fuente por sección: Al igual que siempre, el código fuente estará disponible al final de cada sección pero NO será público NI estará disponible por GitHub.
- Precio: Al ser un curso/libro pensado para desarrolladores en Django y de un mayor nivel, también tiene un mayor precio que el resto de mis formaciones básicas, también, el curso está pensado en adquirir junto con el libro.
- Curso y Libro la mejor combinación: Está pensado para que se adquiera tanto el curso como el libro, ya que, en el curso, muchas veces saltamos el desarrollo de módulos repetitivos, haciendo simplemente una explicación sobre lo que se hizo y no llevando a cabo el desarrollo, de esta forma, se busca de que TU, aquel que quiere mejorar sus habilidades en Django y en Python web en general, pueda aprender mas en el menor tiempo posible y por lo tanto, tienes un precio especial si los adquieres en pareja.
Objetivo
El objetivo de la formación son dos:
- La creación de la tienda en línea con las opciones básicas de realizar el pago mediante Stripe y PayPal, escalable fácilmente para otros métodos de pago.
- Explicar y llevar a la práctica conceptos cruciales para que puedas implementar (el porqué de las cosas) y adaptar la tienda en línea a tus necesidades; conceptos como:
- Lógica para manejar los pagos de manera centralizada y escalable mediante una entidad global llamada Payment.
- Porqué crear un sistema de capas para la pasarela de pago para su escalabilidad y mantenimiento.
- Usar una entidad genérica tipo producto o una especifica como la entidad comprable.
- Personalizar listados y detalles por producto.
- Usaremos Django Admin para la gestión e nuestra tienda.
Ventajas de desarrollar en Django y de tomar esta formación
- Es estupendo para crear aplicaciones cuando requieres comunicar frecuentemente el cliente con el servidor.
- Por tal motivo, es ideal para crear este tipo de aplicaciones como tiendas en líneas que tiene mucha interacción con el cliente y con esto al servidor.
- Gracias a Django ofrece una excelente organización, es un framework rápido, potente, con librerías y helpers listas para usar y extensible con paquetes y librerías de terceros y propios del framework; a su vez. Es un framework estupendo todo en uno (baterías incluidas) y es una delicia programar este tipo de software con el.
- Es ideal para crear aplicaciones reales mantenibles y escalables.
- Aprenderás a desarrollar una aplicación modular y escalable, lo cual te permitirá mejorar tus habilidades en el desarrollo de software con un proyecto real altamente escalable y personalizable para que lo emplees como bases para tus proyectos personales o profesionales.
Puedes ver una demo de la app en:
Acepto recibir anuncios de interes sobre este Blog.
Con esta formación, podrás aprender a crear tu propia Web en Línea con Django y Pasarela de pagos mediante Stripe o PayPal, completamente escalable y personalizada.
Algunas recomendaciones:
Benjamin Huizar Barajas
Laravel Legacy - Ya había tomado este curso pero era cuando estaba la versión 7 u 8. Ahora con la ac...
Andrés Rolán Torres
Laravel Legacy - Cumple de sobras con su propósito. Se nota el grandísimo esfuerzo puesto en este cu...
Cristian Semeria Cortes
Laravel Legacy - El curso la verdad esta muy bueno, por error compre este cuando ya estaba la versi...
Bryan Montes
Laravel Legacy - Hasta el momento el profesor es muy claro en cuanto al proceso de enseñanza y se pu...
José Nephtali Frías Cortés
Fllask 3 - Hasta el momento, están muy claras las expectativas del curso
| 👤 Andrés Cruz
Por aquí tienes el listado completo de clases que vamos a cubrir en el libro y curso:
Primeros pasos
-
1 Introducción al curso
¿Quieres construir una tienda online profesional que puedas adaptar, mejorar y escalar sin límites?
-
2 Introducción
-
3 Herramientas necesarias
Hablamos sobre Python, IDE y navegador web, aparte de otros datos básicos que debes de saber para seguir el curso.
-
4 Crear Ambiente virtual
Creamos el ambiente virtual para el proyecto desde VSC
-
5 Instalar Django y Crear Proyecto
Instalamos Django y creamos el proyecto.
-
6 Crear y registrar aplicaciones
Creamos las aplicaciones que vamos a utilizar.
Modelos principales
-
1 Introducción
-
2 Categoría
-
3 Post
-
4 Book
-
5 Campos de tipo archivo
-
6 Imágenes
-
7 Etiquetas
-
8 Payments
-
9 Correcciones en las migraciones
Hacemos algunos cambios antes de ejecutar las migraciones.
-
10 Ejecutar migraciones
-
11 Código fuente:
Código fuente: https://www.desarrollolibre.net/public/books_courses/djangostore/django-shopping-0.1.zip
CRUD Blog y Store
-
1 Introducción
-
2 Crear superusuario
Creamos el superusuario para ingresar al ADMIN.
-
3 CRUD Categorías
Vamos a crear el CRUD para las categorías.
-
4 CRUD Categorías: Personalizar Django Admin
Vamos a personalizar el listado anterior.
-
5 CRUD Etiquetas
Vamos a crear el CRUD para los posts.
-
6 CRUD Posts
Vamos a crear el CRUD para los posts.
-
7 CRUD Post: date de tipo editable
Vamos a configurar el campo de date como editable.
-
8 CRUD Post: Campo description faltante y corrección content
Correcciones en el modelo.
-
9 CRUD Post: Campo description Textarea
Vamos a definir el campo de descripción como textarea.
-
10 CRUD Post: Campo path para el upload
Definimos el path al momento de hacer el upload de la imagen.
-
11 Generar Slug automáticamente
Generamos el slug mediante un atributo en Django.
-
12 CRUD Post: Etiquetables
-
13 CRUD Post: CKEditor
Configuramos CKEditor para poder emplear en Django Admin.
-
14 CRUD Post: CKEditor, Imágenes
Realizamos las configuraciones para la carga de archivos e imágenes en todo el proyecto.
-
15 CRUD Book
Mostramos el CRUD para los libros y los cambios
-
16 Código fuente:
Código fuente: https://www.desarrollolibre.net/public/books_courses/djangostore/django-shopping-0.2.zip
Web Blog
-
1 Introducción
-
2 Index: Estructura
Mostramos la configuración para el listado.
-
3 Detalle: Estructura
Mostramos la configuración para el detalle.
-
4 Template maestro
Configuramos el proyecto maestro
-
5 Tailwind CSS: Introducción
Hablamos sobre Tailwind, el paquete y los problemas que tenemos para usarlo en proyectos que NO empleen Node.
-
6 Tailwind CSS: Django-tailwind
Configuramos Tailwind en el proyecto en Django.
-
7 Extra: Configuraciones distintas por ambiente y variables de entorno
Vamos a explicar mostrar como crear configuraciones personalizadas por ambiente.
-
8 Django Tailwind: Errores con al sync con github y comando
Vamos a hablar sobre un par de comandos de django tailwind y un error.
-
9 Detalle: Slug
Definimos el detalle del post mediante el slug.
-
10 Filtros
Vamos a crear los filtros para el listado.
-
11 Hoja de Estilo
Creamos una hoja de estilo estática en Django.
-
12 Usar estilos de Tailwind
Vamos a aplicar los estilos de Tailwind para crear nuestros componentes.
-
13 Estilo cartas
Vamos a crear un estilo para las cartas.
-
14 Estilo botones
Vamos a crear un estilo para los botones
-
15 Cambiar dise o Listado Post
Aplicamos un dise o a la p gina de listado
-
16 Extra: Problemas con el servidor y Django Tailwind
Te muestro algunos problemas que están ocurriendo al emplear Django Tailwind en Windows.
-
17 Container
Hablamos de definir el container en el contenedor.
-
18 Estilo Imagen
Muestro el estilo aplicado a las imágenes.
-
19 Cambiar diseño: Listado, Filtros
Aplicamos un diseño a la página de listado, los filtros.
-
20 Estilo para los textos
Aplicamos un diseño para los textos.
-
21 Cambiar diseño: Detalle
Aplicamos un diseño a la página de detalle.
-
22 Sitemap
Creamos el sitemap para el blog.
-
23 Extra: Problema con NPM_BIN_PATH
Vamos a hablar sobre la configuración de NPM_BIN_PATH y las soluciones arrojadas por ChatGTP.
-
24 Django TailwindCCS Typography
Vamos a instalar un paquete para que configure tamaño y márgenes al texto.
-
25 Tipográfica
Vamos a buscar e instalar algunas tipografías para nuestra aplicación.
-
26 Cambiar tipográfica en la aplicación
Vamos a importar tipografía seleccionada anteriormente en nuestro proyecto.
-
27 Enlace de categoría y etiquetas en detalle de post
Mostramos la configuración para mostrar un botón con la categoría y las etiquetas
-
28 Navbar: Bases
Implementamos el menú pc.
-
29 Alpine
Hablaremos de Alpine y lo instalaremos.
-
30 Navbar: Modo Responsivo
Implementamos el menú mobile.
-
31 Extra: Videos de Youtube
Veremos cómo podemos incrustar un video de YouTube responsivo.
-
32 Código fuente:
Código fuente: https://www.desarrollolibre.net/public/books_courses/djangostore/django-shopping-0.3.zip
Tienda Online: Libros
-
1 Introducción
-
2 Index
Implementamos la configuración para el listado.
-
3 Detalle
Implementamos la configuración para el detalle.
-
4 Layout
Hablamos sobre cómo usar el layout de la app de blog desde la app store.
-
5 Categoría
Vemos cómo podemos usar la categoría desde el libro para el filtro y la página de detalle.
-
6 Index: Diseño
Mostramos el diseño para el listado.
-
7 Detalle: Diseño
Mostramos el diseño para la página de detalle.
-
8 Adaptar estilo del módulo para claro y oscuro
Vamos a hacer algunos cambios para adaptar la aplicación al modo claro oscuro.
-
9 PayPal, Stripe y las siguientes secciones: Repaso
Voy a utilizar todo el material que explico como usar PayPal y Stripe en un proyecto en Laravel que vimos en el curso de Laravel Base.
-
10 PayPal, Claves, paquetes y modo desarrollador
Hablamos sobre como podemos obtener las credenciales de PayPal.
-
11 PayPal, Primeros pasos
Resumo todos los pasos que vamos a hacer y te explico como funciona la integración con PayPal.
-
12 Paypal: Presentación
Vamos a presentar el entorno de desarrollo de PayPal.
-
13 PayPal: Sitio web y configuraciones
Vamos a obtener las claves de acceso del sitio web.
-
14 PayPal, Claves de acceso
Definimos las claves de acceso.
-
15 PayPal, Resumen de la Implementación: Cliente
Veremos cómo quedó la configuración en base a la implementación anterior.
-
16 PayPal, Claves de acceso
Definimos las claves de acceso.
-
17 PayPal, Configurar cliente dev/pro
Creamos una clase de ayuda para especificar el ambiente de PayPal, producción o desarrollo.
-
18 PayPal, Generar el token
Creamos el método para generar el token de PayPal.
-
19 PayPal, Constructor
Creamos el método constructor e inicializar las claves de PayPal y el URL.
-
20 PayPal Aprobar orden
Creamos el m todo para aprobar la orden
-
21 PayPal, Método post
Creamos el método post para procesar la orden que emplea los métodos anteriormente creados.
-
22 PayPal, Probar implementación
Haremos un pago de prueba en PayPal para probar todos los cambios realizados hasta ahora.
-
23 PayPal, Definir el libro
Vamos a definir el ID del producto para luego procesar en el servidor.
-
24 Paypal, Migrar implementación a clase utilidad
Vamos a migrar la integración con PayPal a otra clase.
-
25 Adaptar PayPal: Parámetros importantes del pago
Vamos a identificar y crear propiedades para cada dato que nos interese registrar como el ir del pago, estado, traza, etc.
-
26 Payment, Registrar un producto, lógica
Vamos a crear una instancia de Payment, y registrar el pago de un producto.
-
27 Payment, Probar integración
Vamos a probar la integración anterior.
-
28 Payment, Pagos autenticación requerida
-
29 Payment, Tipo de pago y restructuración
Definimos el tipo para la pasarela de pago y restructuración en clases de lo que ya tenemos.
-
30 Crear realmente un componente de PayPal, template
Pasaremos la URL de pago a PayPal, para que pueda ser procesada.
-
31 Stripe y Python/Django
Hablamos sobre Stripe y que paquete tenemos disponibles para usar.
-
32 El dashboard de Stripe
Presentamos el módulo de dashboard de Stripe.
-
33 Stripe: Primeros pasos
Instalamos el paquete y configuramos las variables de entorno.
-
34 Stripe: crear el session
Creamos el método controlador para crear la sesión.
-
35 Stripe: consumir session
Vamos a hacer una prueba para consumir el session ID.
-
36 Stripe, Crear template en Django
Vamos a crear el template para stripe.
-
37 Stripe: JavaScript
Vamos a incorporar el JS de Stripe y crear la pasarela de pago
-
38 Stripe: Configurar producto al generar el session ID
Configuramos el precio y descripción correcto en base al producto que se va a comprar.
-
39 Configurar único template de pago
Configuramos un único template para cargar la pasarela de pago.
-
40 Stripe: Los Products y Prices, aviso
Hablamos sobre los products y prices de Stripe.
-
41 Stripe: Evitar llamados dobles desde el botón
Vamos a evitar poder llamar múltiples veces por múltiples click la generación del checkout id.
-
42 Stripe: Establecer el sessionID en pantalla pago
Vamos a establecer el session ID al momento del pago.
-
43 Stripe, revisar pago
Vamos a revisar si el pago es exitoso.
-
44 Clases para datos de pagos
Declaramos una clase (que luego será una clase abstracta) para definir los campos.
-
45 Reestructurar en clase lógica de Stripe
Convertimos las vistas de Stripe a una clase reutilibable.
-
46 Stripe: VBC para generar el session ID
Vamos a obtener el session ID empleando el sistema de capas/(3 clases).
-
47 Stripe: Verificar pago
Vamos a reutilizar la vista que procesa la orden mediante PayPal, también con Stripe.
-
48 Payment: procesar órdenes mediante GET y POST
Adaptamos la vista para procesar el pago para que puedan recibir peticiones tipo GET/Stripe y Post/PayPal.
-
49 Payment: Detectar peticiones json
Vamos a aprender a detectar peticiones tipo JSON evaluando el header en la vista.
-
50 Pantalla de éxito en el pago
Vamos a maquetar el template de éxito en el pago.
-
51 Emplear pantalla de éxito en el pago
Vamos a mostrar la configuración para mostrar el detalle de una compra exitosa.
-
52 Pantalla de cancelado y error en el pago
Creamos la pantalla para mostrar un error en el pago y cancelado.
-
53 Cambios en el template maestro: Enlace
Vamos a agregar el enlace de la tienda.
-
54 Detalle del pago solo para el dueño
Vamos a configurar para que el pago se vea solamente para el usuario dueño del pago.
-
55 Verificar que la orden de pago ya no existe en la BD
Vamos a verificar si la ordenID no existe en la BD.
-
56 Convertir clase a abstracta
Creamos la clase de AbstractPayment cómo abstracta.
-
57 Manejar un mensaje de error y mostrar ventana de error
Vamos a configurar el mensaje para cuando existan errores en el pago, en este ejemplo, la orden existente.
-
58 Manejo de errores: Página de error
Vamos a mostrar las páginas de errores
-
59 Diseño del template de pago
Aplicamos un sencillo CSS en base a flex para la pasarela de pago.
-
60 Corrección de errores en pasarela de pago de PayPal
Hablaremos sobre unos problemas en el template _paypal y llamados de constructores
-
61 Payment: Problemas con los tipos de retornos
Hablamos sobre que, cada retorno en la vista de pago, tiene que tener la verificación sobre el tipo que tiene que retornar.
-
62 Payment: Método auxiliar para las respuestas json/templates
Vamos a implementar un método de ayuda que usamos al momento del retorno de la respuesta del pago en la vista, dependiendo de si la respuesta tiene que ser un json o una redirección.
-
63 Stripe: Url de cancelado
Vamos a implementar la URL de cancelado en Stripe
-
64 Módulo de usuario para ver los pagos realizados
Vamos a mostrar la implementación de un módulo para pagos realizados.
-
65 Extra: Loading al dar click en la pasarela de pago
Definimos un loading al darle click al botón de PayPal.
-
66 Aplicar estilo al loading
Damos un rediseño al efecto de loading.
-
67 Resumen
Tienda: Producto
-
1 Introducción
-
2 Modelo: Tipo producto
Entidad para especificar el tipo de producto.
-
3 Modelo: Producto
Entidad de tipo genérica para los productos.
-
4 Ejecutar migraciones
Generamos y ejecutamos la migración para los productos.
-
5 Dashboard: CRUD
Presentamos el CRUD para el producto y el tipo.
-
6 Store: Listado y detalle
Vamos a mostrar la página de listado y detalle para la tienda del producto.
-
7 Extra: Modelo Abstracto tipo producto
Creamos una clase modelo tipo producto que podamos heredar para crear un nuevo producto.
-
8 Store: Pasarelas: Vista
Vamos a mostrar la implementación de la pasarela de pago en la vista.
-
9 Store: Pasarelas: Vista
Vamos a mostrar la implementación de la pasarela de pago en la vista.
-
10 Store: Filtros por tipo: Listado
Vamos a crear el filtro por tipo producto para el listado de la tienda.
-
11 Store: Filtros por tipo: Listado, Clase abstracta
Vamos a crear una clase abstracta para los tipos y aprovechar su estructura como lo es, la carga de filtros.
-
12 Store: Filtros por tipo: Detalle
Vamos a agregar el tipo de producto en el filtro de detalle del producto, para evitar que la ruta choque con la ruta configurada en la clase anterior.
-
13 Store: Vistas, refactorizar
Vamos a organizar nuestras vistas de la tienda en archivos apartes para que sea más modular.
-
14 Enlaces en el template maestro de la tienda
Definimos el enlace de la tienda en el template maestro.
-
15 Helper para los templates de pasarelas de pago
Vamos a crear un template para la pasarela de pago.
-
16 Clase global para registrar pagos: Solución IA
Vamos a crear una clase adicional para registrar los pagos de los libros y productos.
-
17 Código fuente
Código fuente: https://www.desarrollolibre.net/public/books_courses/djangostore/django-shopping-0.5.zip
Varios cambios
-
1 Introducción
Haremos varios cambios sobre la app como el módulo de auth, sistema de cupones, variar templates, entre otros.
-
2 Autenticación de usuarios: Primeros pasos
Vamos a hablar sobre algunos paquetes que podemos usar para autenticar, los analizamos e indicamos cual empleamos.
-
3 Autenticación de usuarios: django-allauth, instalar
Vamos a instalar y configurar inicialmente django-allauth.
-
4 Autenticación: Probar
Vamos a probar el módulo de registro y login.
-
5 Autenticación: Personalizar templates
Vamos a conocer cómo personalizar los templates en Django.
-
6 Autenticación: Personalizar templates con Tailwind
Personalizamos un par de templates de Auth All como lo es el de login y registro.
-
7 Templates con diseños diferentes: Tag
Implementamos un método/directiva para poder verificar si un template existe.
-
8 Templates con diseños diferentes: Utilizar filtro anterior y cambios en vista, Listado
Adaptamos el template de listado con la nueva estructura.
-
9 Templates con diseños diferentes: Utilizar filtro anterior y cambios en vista, Detalle
Adaptamos el template de detalle con la nueva estructura.
-
10 Template con diseños diferentes: Listado
Vamos a personalizar el listado por tipo producto de manera opcional.
-
11 Template con diseños diferentes: Detalle
Vamos a personalizar el detalle por tipo producto de manera opcional.
-
12 Usuario Staff
Vamos a explicar el sistema de roles de permisos en Django empleado al registrar un usuario con allauth.
-
13 Errores log pagos u otros
Vamos a definir un log para un posible error de PayPal y hablar sobre este esquema.
-
14 Pagos en dashboard: Listado
Vamos a crear el listado de pagos en el dashboard.
-
15 Pagos en dashboard: Filtros
Implementamos un filtro para el tipo y usuario en el listado.
-
16 Pagos en dashboard: Campo de búsqueda
Implementamos un campo de búsqueda usuario en el listado.
-
17 Pagos en dashboard: Campo personalizado para el orderID
Vamos a crear un campo personalizado para el orderID que no aparezca tan largo.
-
18 Vista de perfil para el usuario
Creamos la página de perfil del usuario.
-
19 Vista de perfil para el usuario: Opciones
Implementamos opciones de logout y mis pagos.
-
20 Vista de perfil para el usuario: Icono
Configuramos un ícono en el header.
-
21 Traducción: Primeros pasos
Explicamos de manera general el proceso de traducciones.
-
22 Traducción: gettext
Instalamos la herramienta de gettext.
-
23 Traducción: Configuraciones
Creamos las configuraciones mínimas para las traducciones.
-
24 Traducción: Carpeta de traducción
Creamos la carpeta de traducciones a nivel de las aplicaciones.
-
25 Traducción: Ignore
Veremos cómo podemos ignorar archivos o carpetas al momento de generar las traducciones.
-
26 Traducción: Generar archivos de traducción
Generamos los archivos de traducciones mediante comandos.
-
27 Traducción: Traducir
Vamos a crear las traducciones empleando ChatGTP y Gemini CLI.
-
28 Traducción: Compilar archivos de traducción
Generamos los archivos binarios de las traducciones.
-
29 Traducción: Configuraciones
Crearemos las configuraciones para el manejo de idiomas.
-
30 Traducción: Formulario
Vamos a implementar el formulario.
-
31 Traducción: Problema con las conversiones de precios
Hacemos un ajuste con los precios de los productos que al pasar a español, los números flotantes pasan a tener su separación decimal con comas en vez de puntos.
-
32 Cupón: Modelo y Migración
Crearemos la migración y el modelo para los cupones.
-
33 Cupón: Dashboard
Creamos el proceso administrativo para los cupones.
-
34 Cupón: Dashboard, Generar
Vamos a generar el cupón de manera automatizada.
-
35 Cupón: Definir HTML en la pasarela de pago
Vamos a crear el formulario para revisar el cupón en la pasarela de pago.
-
36 Cupón: Clase auxiliar para revisar el cupón
Vamos a crear una clase auxiliar para revisar el cupón.
-
37 Cupón: Obtener cupón desde las vistas
Vamos a recibir el cupón por GET.
-
38 Cupón: Utilizar Clase auxiliar desde las vistas
Vamos a utilizar la clase auxiliar para revisar el cupón.
-
39 Cupón: Utilizar Clase auxiliar desde las vistas
Vamos a utilizar la clase auxiliar para revisar el cupón.
-
40 Cupón: Ocultar campos si el cupón está establecido
Vamos a ocultar algunos campos de formulario dependiendo de si el cupón está o no establecido.
-
41 Cupón: Atributo para definir el paso
Creamos un atributo para manejar cuando mostramos el botón de pagar ahora e input del cupón o los botones de pago.
-
42 Cupón: Botón de pagar ahora
Vamos a implementar el botón para pagar ahora
-
43 Cupón: No redireccionar al siguiente paso si el cupón es invalido
No ir al segundo paso si el cupón introducido es invalido.
-
44 Extra: Cupón: Lógica del render el el cliente
Implementamos un script con Alpine para evitar recargar la pagina al darle a pagar ahora.
-
45 Cupón: Mostrar información del cupón aplicado
Mostramos la información del cupón, si se aplicó u ocurrió un error.
-
46 Cupón: Stripe, Adaptar generar SessionID
Mostramos los cambios realizados en la clase que genera el SessionID de Stripe.
-
47 Cupón: Procesar cupón en la compra
Vamos a procesar la compra y registrar el cupón.
-
48 Pasarela de pago, resumen
Damos un resumen sobre la pasarela de pago ya finalizada.
-
49 Cupón: Marcar como consumido
Implementamos la función de marcar un cupón como consumido.
-
50 Clase Abstracta para el detalle de productos comprobables
Generamos la clase abstracta para el detalle de la casa comprable.
-
51 Replicar en libro
Aplicamos los cambios en la entidad comprable de libro.
-
52 Cupón: Mostrar cupón aplicado en el dashboard y búsqueda
Vamos a mostrar cuando se aplica o no un cupón en el listado.
-
53 Cupón: Búsqueda por cupón en los pagos
Vamos a definir un enlace para ver el cupón consumido en los pagos.
-
54 Aviso de producto comprado
Mostramos una alerta para indicar que el producto ya fue comprado.
-
55 Modo Oscuro: Como funciona en Tailwind 4
Hablamos sobre cómo funciona el modo oscuro.
-
56 Modo Oscuro: Implementar
Permitimos cambiar entre el modo claro y oscuro.
-
57 Definir títulos/title personalizados en las páginas
Vamos a configurar la plantilla maestra, definir un bloque para poder personalizar el título.
-
58 Redireccionar desde la raíz
Creamos una redirección desde la raíz y actualizamos el enlace del logo en el header.
-
59 view-transition: CSS para cambiar entre páginas
Vamos a crear una suave transiciones entre las páginas.
-
60 view-transition-name: transiciones entre imágenes
Vamos a conocer como podemos hacer transiciones entre las imágenes.
-
61 Modo Demo: Introducción
Hablamos sobre cómo podemos implementar un modo demo.
-
62 Modo Demo: Implementar
Implementamos el modo demo.
-
63 Deploy en Pythonanywhere: Pasos previos
Pasos previos antes de subir.
-
64 Cómo publicar tu aplicación Django GRATIS en PythonAnywhere
Mostramos como podemos hacer el deploy de un proyecto en Django en PythonAnywhere mediante Git y el bash. Post: https://www.desarrollolibre.net/blog/django/deploy-de-una-app-web-en-django-con-pythonanywhere
-
65 Railway, deploy de tus aplicaciones en PHP, Python web, Node... como en Heroku GRATIS
Conozcamos una estructura para hacer el DEPLOY GRATIS de tus aplicaciones en Laravel, CodeIgniter, Flask, FastAPI, Django, Node, Go, y muchas. https://railway.com/workspace/referrals?utm_campaign=Onboarding%20Campaign&utm_content=Referrals&utm_medium=email_action&utm_source=customer.io
-
66 Mejor diseño: Inspiración
Hablemos sobre dónde podemos buscar fuentes de inspiración para nuestra app y cómo podemos generar mediante la IA.
-
67 Mejor diseño: Varios
Vamos a hacer algunos cambios sutiles para mejorar el diseño en la app.
-
68 Traducción: Generar archivos de traducción
Generamos los archivos de traducciones mediante comandos.