
Vamos a hacer unas pruebas para acceder a Python 3.
Vamos a crear el ambiente virtual.
Vamos a instalar el framework web.
Vamos a hablar la diferencia entre proyecto y aplicación en Django.
Vamos a hablar de la estructura del proyecto.
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.
Vamos a presentar algunos comandos importantes en Django.
Vamos a dar una presentación al MTV de Django.
Vamos a configurar VSC para que reconozca los paquetes del proyecto.
Vamos a presentar como usar la consola de Python, ideal para hacer pruebas.
Vamos a conocer como crear los archivos para programar en Python.
Vamos a conocer cómo emplear las variables y sus tipos de datos.
Vamos a conocer cómo funcionan las operaciones matemáticas en Python.
Vamos a conocer cómo funcionan las concatenaciones de String en Python.
Vamos a aprender a realizar casteos o conversión entre distintos tipos.
Vamos a aprender a trabajar con las listas.
Vamos a conocer el uso de los condicionales.
Vamos a conocer el uso de los ciclos while y for.
Daremos los primeros pasos con las funciones en Python
Daremos los primeros pasos con las funciones en Python
Vamos a conocer el uso de los diccionarios.
Vamos a hablar sobre las clases, su propósito, importancia y características bases.
Vamos a crear la primera clase y definir sus atributos y métodos.
Vamos a conocer como trabajar con los métodos constructores.
Vamos a conocer cómo emplear la herencia de clases.
Vamos a hablar sobre los módulos en Python.
Vamos a realizar un ejercicio sobre los módulos en Python.
Vamos a crear los modelos principales con los cuales vamos a trabajar.
Vamos a crear un modelo para los comentarios.
Vamos a presentar las migraciones y crear las primeras migraciones y ejecutar en la base de datos.
Vamos a visualizar los datos de la base de datos y analizar los resultados.
Vamos a aprender a revertir las migraciones.
Vamos a renderizar un template.
Vamos a pasar parámetros al template.
Vamos a mostrar cómo emplear carpetas para organizar los templates.
Vamos a dar una presentación de las funciones de ayuda.
Vamos a aprender a crear un formulario de manera manual con HTML y usarlo desde la app en Django.
Vamos a crear un registro en la base de datos mediante una instancia del modelo comentario.
Vamos a aprender a usar los FormModel.
Vamos a conocer algunas operaciones para interactuar con la base de datos que van a ser necesarias para poder hacer el CRUD.
Veremos cómo emplear la herramienta para interactuar con el proyecto.
Vamos a crear el proceso CRUD para el listado.
Vamos a crear el proceso CRUD para editar.
Vamos a crear el proceso CRUD para eliminar.
Vamos a conocer como hacer redirecciones.
Vamos a crear un pull de registros paginados al igual que los enlaces de paginación en el template.
Vamos a aprender a capturar las excepciones que ocurren cuando un registro no existe.
Vamos a aprender a capturar las excepciones que ocurren cuando un listado no existe
Vamos a aprender a generar datos de prueba
Vamos a aprender a generar datos de prueba.
Hablaremos un poco sobre la herramienta de Django Admin.
Vamos a crear un usuario superadministrador.
Vamos a asignar el modelo de comentarios a Django Admin.
Vamos a conocer algunos atributos para personalizar la gestión de alguna entidad en Django Admin.
Vamos a conocer algunas opciones de guardado.
Vamos a conocer un decorador para registrar clases.
Vamos a crear la clase admin para los tipos y categorías.
Vamos a crear la clase admin para los elementos.
Vamos a aprender a colocar campos en una sola línea para Django admin.
Vamos a conocer cómo emplear los fieldset para agrupar campos.
Vamos a hablar sobre cómo modificar campos de formulario.
Vamos a crear campos personalizables mediante funciones.
Vamos a conocer cómo cambiar algunas opciones de guardado mediante propiedades.
Vamos a aprender a manejar los modelos en línea en base a la relación FK del mismo.
Vamos a aprender a ejecutar código personalizado antes o después de una operación CRUD.
Vamos a aprender a crear validaciones personalizadas.
Vas a generar el slug de manera automática.
Vamos a aprender a incluir archivos estáticos en Django Admin.
Vamos a presentar los forms y modelForms en Django.
Vamos a crear un formulario para los elementos y compararlos con los de tipo ModelForm.
Vamos a crear la vista/controlador para procesar un formulario.
Vamos a crear el listado para los elementos.
Vamos a dar una introducción a las validaciones y crearemos una.
Vamos a aprender a mostrar los errores de manera individual.
Vamos a corregir una advertencia con las rutas.
Vamos a crear validaciones personalizadas para los formularios.
Vamos a dar un repaso para referenciar campos del formulario de manera individual.
Vamos a dar una introducción a los widgets en Django.
Vamos a aprender a personalizar los atributos en Django mediante los widgets.
Vamos a personalizar los campos de formulario mediante una clase.
Vamos a crear una clase personalizada sobrescribiendo el render para el renderizado del campo.
Vamos a conocer como variar entre tipos de campos HTML en Django.
Vamos a aprender a modificar los atributos de los campos.
Vamos a conocer cómo emplear los widgets que provee Django, como el de calendario y hora.
Vamos a conocer mostrar todos los datos de un formulario con un solo atributo.
Vamos a hablar de lo que vamos a ver en esta sección y lo que hemos visto de los templates.
Vamos a conocer cómo heredar contenido de los templates.
Vamos a aprender a reutilizar la plantilla maestra en otras plantillas.
Vamos a conocer como pasar parametros en los fragmentos de templates.
Vamos a conocer otras opciones de los bloques en Django.
Vamos a conocer el uso de los condicionales y los for en Django Template.
Vamos a aprender a programar nuestras propias etiquetas.
Vamos a realizar una presentación de los filtros.
Vamos a conocer el primer filtro que permite remover textos.
Vamos a conocer un filtro para formatear las fechas.
Vamos a conocer un filtro para obtener la fecha actual.
Vamos a conocer un filtro para convertir los textos a minúsculas.
Vamos a conocer un filtro para convertir los textos a mayúsculas
Vamos a conocer un filtro para sumar.
Vamos a conocer un filtro para crear variables en el template.
Vamos a conocer un filtro para imprimir un texto diferente por cada iteración.
Vamos a conocer un filtro para dar un valor por defecto cuando el contenido es nulo o falso.
Vamos a conocer un filtro para medir la longitud de un array o texto.
Vamos a conocer un filtro para imprimir contenido HTML que venga desde la vista.
Vamos a conocer un filtro para convertir un array en texto separados por el carácter.
Vamos a aprender a anidar o emplear varios filtros en una sola operación.
Vamos a aprender a crear nuestros propios filtros.
Vamos a hablar sobre el motor de Jinja 2 para emplearlo en lugar del de Django Template.
Vamos a ver cómo crear un objeto y crear un registro.
Vamos a ver cómo obtener un solo registro u objeto.
Vamos a ver cómo actualizar un registro en vez de crear.
Vamos a ver cómo obtener un pull de registros.
Vamos a conocer cómo emplear los filtros para agregar condiciones WHERE.
Vamos a aprender cómo excluir resultados.
Vamos a aprender a ordenar resultados.
Vamos a aprender a eliminar registros.
Vamos a presentar DRF, su importancia y su uso básico.
Vamos a instalar DRF y crear una app en Django.
Vamos a definir la presentación de los datos.
Vamos a crear la capa que se encarga de procesar la petición del usuario.
Vamos a crear las rutas para la API.
Vamos a realizar algunas pruebas con la rest api.
Vamos a hablar sobre el problema con las relaciones FKs al momento de crear un elemento.
Vamos a crear un viewset personalizado para los elemento.
Vamos a habilitar la paginación para los listados.
Vamos a conocer cómo emplear la opción de many.
Vamos a conocer cómo crear columnas o atributos artificiales en la serialización.
Vamos a conocer cómo crear recursos personalizados en el viewset.
Hablaremos de cómo es posible personalizar los métodos para crear, actualizar y eliminar.
Vamos a presentar el contenido que veremos para autenticar la rest api, los tipos y configuraciones.
Vamos a conocer cómo emplear la autenticación mediante sesión y básica.
Vamos a comenzar las configuraciones para realizar la autenticación con tokens.
Vamos a crear la función de login para generar el token.
Vamos a probar el método de login anterior, proteger algunos recursos y consumirlos.
Vamos a configurar los CORS para consumir la Rest Api en la siguiente sección desde la app en Vue.
Vamos a instalar Vue CLI.
Vamos a crear un proyecto con proyecto en Vue.
Vamos a instalar y configurar Vue Router
Vamos a instalar axios.
Vamos a crear un repositorio con github.
Vamos a crear una página de listado para las categorías.
Vamos a crear una página de listado para los tipos.
Vamos a aprender a navegar entre páginas.
Vamos a hablar sobre naive UI.
Vamos a crear un componente de tabla para nuestros listados.
Vamos a crear un contenedor de tipo Space.
Vamos a crear una estructura base de la web.
Vamos a adaptar el menú para que funcione con un router-link.
Vamos a crear un listado con las categorías y tipos en la Rest Api.
Vamos a crear un componente en Vue para el menú.
Vamos a crear un header con un menú.
Vamos a modificar los routerLink con un diseño de botón.
Vamos a crear el modelo de menú.
Vamos a instalar Tailwind.css en el proyecto.
Adaptaremos ciertos detalles visuales con Tailwinds.
Vamos a crear el listado de elementos.
Vamos a dar un mejor agrupado a las rutas.
Vamos a obtener un listado de elementos por categorías.
Vamos a obtener un listado de elementos por tipos.
Vamos a conocer cómo sobrescribir el estilo.
Vamos a crear la vista de detalle.
Django es un framework con muchas opciones, nos permite crear aplicaciones con el lenguaje del momento Python, un lenguaje de programación modular, con una sintaxis impecable que también podemos usarlo en ambiente web.
Nos ofrece un esquema modular entre proyecto y aplicaciones, un conjunto importante de paquetes para extender el ya de por sí, completo framework y con esto, la creación de proyectos escalables.
Es un framework que, al emplear Python, nos trae consigo sus bondades de una sintaxis limpia, clara, precisa, entorno modular y escalable mediante paquetes.
Vamos a conocer cómo está formado el framework, las características básicas que nos permite Django como framework por excelencia para crear procesos CRUDs, que pasan desde la creación de vistas, templates, conexión con modelos, ruteos, validaciones de formularios, crear middleware entre otros.
En definitiva, tendrás un enorme material a tu disposición, para hacer verdaderas aplicaciones web.
Alcance
Esta guía tiene la finalidad de dar los primeros pasos con Django; con esto, vamos a plantear dos cosas:
No es un curso que tenga por objetivo conocer al 100% Django, o de cero a experto, ya que, sería un objetivo demasiado grande para el alcance de esta guía, si no conocer su ecosistema, que nos ofrece y cómo funciona el mismo en base a varios ejemplos y/o aplicaciones pequeñas con alcances limitados.
Se da por hecho de que el lector tiene conocimientos al menos básicos en el lenguaje de programación de Python, al igual que en tecnologías web como HTML, CSS y JavaScript; también es recomendado que tengas conocimientos al menos teóricos sobre el framework en el uso de módulos, migraciones, MTV; aunque en el libro hacemos introducciones a toda la estructura base del framework.
Para quién es este curso
Este curso 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.
Este curso tiene un total de 18 secciones, se recomienda leer en el orden en que están ordenados y como explicamos los componentes del framework, pasar directamente a la práctica, replicar, probar y modificar los códigos que mostramos.
Sección 1: En este capítulo vamos a presentar el software necesario para crear proyectos en Django, Python como lenguaje de programación y en el cual está desarrollado el framework, un editor de código como VSS, hasta preparar el entorno.
Sección 2: En este capítulo vamos a crear el ambiente virtual para desarrollar en la aplicación, crearemos el proyecto en Django, conoceremos su estructura básica y el uso de las aplicaciones y proyecto en Django.
Sección 3: En este capítulo daremos una introducción a Python conociendo sus características básicas y funcionalidades como variables, tipos de datos, funciones, clases entre otros.
Sección 4: En este capítulo, vamos a crear una aplicación tipo CRUD sencilla y conocer todos los elementos propios del framework que esto implica como manejo de formularios, templates, vistas y modelos, además del manejo de los tokens CSRF, migraciones, bases de datos entre otros.
Sección 5: En este capítulo, vamos a trabajar con Django Admin para proporcionar una interfaz para administrar el contenido del sitio; es decir, los típicos CRUDs, conoceremos como personalizarlos a nivel de clases, validaciones, interpretar peticiones, entre otros.
Sección 6: En este capítulo, vamos a presentar el uso de los formularios en Django, definición, validaciones, guardado y estructura en general.
Sección 7: En este capítulo, vamos a presentar las distintas funcionalidades que cuentan los templates en Django.
Sección 8: En este capítulo, vamos a presentar algunas funciones que podemos usar con los QuerySet al momento de construir las consultas.
Sección 9: En este capítulo, vamos a construir una Rest Api con Django Rest Framework.
Sección 10: En este capítulo, vamos a consumir la Rest Api anterior con una aplicación en Vue 3 y NaiveUI; se crearán listados, formularios y se integrarán con Tailwind.css
Sección 11: En este capítulo, vamos a conocer las vistas basadas en clases realizando las típicas operaciones que se necesitan en el desarrollo web moderno.
Sección 12: En este capítulo, vamos a conocer como trabajar con archivos en Django; específicamente leer y generar excel y CSV y generación de PDFs.
Sección 13: En este capítulo, vamos a mostrar el código de una aplicación creada con Alpine.js para crear un componente tipo to do list.
Sección 14: En este capítulo, vamos a adaptar la aplicación en Alpine.js presentada en el anterior capítulo, para que funcione en conjunto con Django.
Sección 15: En este capítulo, vamos a emplear Django Channels para aprender a crear sistemas con comunicación full duplex y poder crear nuestros propios websockets y consumirlos, veremos cómo crear aplicaciones de simple canales y múltiples, también como consumir un consumer desde una app en Vue.
Sección 16: En este capítulo, vamos a crear un módulo de autenticación personalizada con login, registro, recuperar contraseñas, envío de correos, carga del avatar entre otros.
Sección 17: En este capítulo, vamos a conocer cómo emplear el sistema de signals o señales para interceptar eventos en Django como creación de entidades en la base de datos y ejecutar un código personalizado.
Sección 18: En este capítulo, presentaremos el uso de las pruebas unitarias para crear funciones automatizadas y probar distintos módulos de nuestra aplicación.