Curso y Libro Crea tu Tienda en Línea con Django 5
Índice de contenido
Early Access, la formación aun esta en desarrollo y de momento SOLO esta disponible en Academia.
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.
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
-
2 Herramientas necesarias
Hablamos sobre Python, IDE y navegador web, aparte de otros datos básicos que debes de saber para seguir el curso.
-
3 Crear Ambiente virtual
Creamos el ambiente virtual para el proyecto desde VSC
-
4 Instalar Django y Crear Proyecto
Instalamos Django y creamos el proyecto.
-
5 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 Index
Implementamos la configuración para el listado.
-
2 Detalle
Implementamos la configuración para el detalle.
-
3 Layout
Hablamos sobre cómo usar el layout de la app de blog desde la app store.
-
4 Categoría
Vemos cómo podemos usar la categoría desde el libro para el filtro y la página de detalle.
-
5 Index: Diseño
Mostramos el diseño para el listado.
-
6 Detalle: Diseño
Mostramos el diseño para la página de detalle.
-
7 Adaptar estilo del módulo para claro y oscuro
Vamos a hacer algunos cambios para adaptar la aplicación al modo claro oscuro.
-
8 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.
-
9 PayPal, Primeros pasos
Resumo todos los pasos que vamos a hacer y te explico como funciona la integración con PayPal.
-
10 Paypal: Presentación
Vamos a presentar el entorno de desarrollo de PayPal.
-
11 PayPal: Sitio web y configuraciones
Vamos a obtener las claves de acceso del sitio web.
-
12 PayPal, Claves de acceso
Definimos las claves de acceso.
-
13 PayPal, Resumen de la Implementación: Cliente
Veremos cómo quedó la configuración en base a la implementación anterior.
-
14 PayPal, Claves de acceso
Definimos las claves de acceso.
-
15 PayPal, Configurar cliente dev/pro
Creamos una clase de ayuda para especificar el ambiente de PayPal, producción o desarrollo.
-
16 PayPal, Generar el token
Creamos el método para generar el token de PayPal.
-
17 PayPal, Constructor
Creamos el método constructor e inicializar las claves de PayPal y el URL.
-
18 PayPal Aprobar orden
Creamos el m todo para aprobar la orden
-
19 PayPal, Método post
Creamos el método post para procesar la orden que emplea los métodos anteriormente creados.
-
20 PayPal, Probar implementación
Haremos un pago de prueba en PayPal para probar todos los cambios realizados hasta ahora.
-
21 PayPal, Definir el libro
Vamos a definir el ID del producto para luego procesar en el servidor.
-
22 Paypal, Migrar implementación a clase utilidad
Vamos a migrar la integración con PayPal a otra clase.
-
23 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.
-
24 Payment, Registrar un producto, lógica
Vamos a crear una instancia de Payment, y registrar el pago de un producto.
-
25 Payment, Probar integración
Vamos a probar la integración anterior.
-
26 Payment, Pagos autenticación requerida
-
27 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.
-
28 Crear realmente un componente de PayPal, template
Pasaremos la URL de pago a PayPal, para que pueda ser procesada.
-
29 Stripe y Python/Django
Hablamos sobre Stripe y que paquete tenemos disponibles para usar.
-
30 El dashboard de Stripe
Presentamos el módulo de dashboard de Stripe.
-
31 Stripe: Primeros pasos
Instalamos el paquete y configuramos las variables de entorno.
-
32 Stripe: crear el session
Creamos el método controlador para crear la sesión.
-
33 Stripe: consumir session
Vamos a hacer una prueba para consumir el session ID.
-
34 Stripe, Crear template en Django
Vamos a crear el template para stripe.
-
35 Stripe: JavaScript
Vamos a incorporar el JS de Stripe y crear la pasarela de pago
-
36 Stripe: Configurar producto al generar el session ID
Configuramos el precio y descripción correcto en base al producto que se va a comprar.
-
37 Configurar único template de pago
Configuramos un único template para cargar la pasarela de pago.
-
38 Stripe: Los Products y Prices, aviso
Hablamos sobre los products y prices de Stripe.
-
39 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.
-
40 Stripe: Establecer el sessionID en pantalla pago
Vamos a establecer el session ID al momento del pago.
-
41 Stripe, revisar pago
Vamos a revisar si el pago es exitoso.
-
42 Clases para datos de pagos
Declaramos una clase (que luego será una clase abstracta) para definir los campos.
-
43 Reestructurar en clase lógica de Stripe
Convertimos las vistas de Stripe a una clase reutilibable.
-
44 Stripe: VBC para generar el session ID
Vamos a obtener el session ID empleando el sistema de capas/(3 clases).
-
45 Stripe: Verificar pago
Vamos a reutilizar la vista que procesa la orden mediante PayPal, también con Stripe.
-
46 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.
-
47 Payment: Detectar peticiones json
Vamos a aprender a detectar peticiones tipo JSON evaluando el header en la vista.
-
48 Pantalla de éxito en el pago
Vamos a maquetar el template de éxito en el pago.
-
49 Emplear pantalla de éxito en el pago
Vamos a mostrar la configuración para mostrar el detalle de una compra exitosa.
-
50 Pantalla de cancelado y error en el pago
Creamos la pantalla para mostrar un error en el pago y cancelado.
-
51 Cambios en el template maestro: Enlace
Vamos a agregar el enlace de la tienda.
-
52 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.
-
53 Verificar que la orden de pago ya no existe en la BD
Vamos a verificar si la ordenID no existe en la BD.
-
54 Convertir clase a abstracta
Creamos la clase de AbstractPayment cómo abstracta.
-
55 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.
-
56 Manejo de errores: Página de error
Vamos a mostrar las páginas de errores
-
57 Diseño del template de pago
Aplicamos un sencillo CSS en base a flex para la pasarela de pago.
-
58 Corrección de errores en pasarela de pago de PayPal
Hablaremos sobre unos problemas en el template _paypal y llamados de constructores
-
59 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.
-
60 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.
-
61 Stripe: Url de cancelado
Vamos a implementar la URL de cancelado en Stripe
-
62 Módulo de usuario para ver los pagos realizados
Vamos a mostrar la implementación de un módulo para pagos realizados.
-
63 Extra: Loading al dar click en la pasarela de pago
Definimos un loading al darle click al botón de PayPal.