¿Qué es Django 5 y para qué sirve o para qué usarlo en el desarrollo web?
Django es un framework excelente y el más famoso o al menos el primero que nos viene a la mente cuando hablamos de Python web; Django nos ofrece desde la instalación del framework todo lo necesario para crear proyectos de pequeña o gran envergadura; Django 5 es un framework potente cuyas ventajas principales son:
- Creación de aplicaciones modulares
- Programación en el lenguaje de programación multipropósito de Python
- TODO el ecosistema de Python para desarrollar nuestras apps web
- Múltiples paquetes que podemos instalar mediante pip y emplearlos en nuestro proyecto ya sea a de Python o propiamente para Django
- Nos trae un completo módulo o aplicación para realizar la gestión de datos, es decir, los famosos CRUD
- Diseñar nuestras propias URLs amigables fácilmente
- Un efectivo enfoque para mantener los requerimientos del proyecto
Vamos a hablar sobre otras características fundamentales sobre el framework como:
Creando un módulo de gestión rápidamente, dinámica y personalizado con la app de admin
Un proyecto de Django, cuenta con varias aplicaciones, una de las más interesantes es la aplicación llamada admin que que nos viene de gratis cuando creamos un proyecto de Django tiene un alto nivel de personalización que va desde definir como presentar los distintos elementos del CRUD, agrupar elementos de formulario, así como definir tipos de campo, registra formularios relacionados, organización de la tabla o listado, definir filtros y campos de búsqueda, cambiar el estilo y un largo etc para crear aplicaciones personalizada a nuestros clientes.
MTV para todo
La estructura de un proyecto en Django es basado en el patrón MTV que ya lo hablamos en una anterior entrada, por lo tanto, tenemos una organización de primera para dividir nuestro desarrollo en capas o niveles.
Un completo ORM para gestionar nuestra base de datos
Tenemos un completo ORM o Objeto Modelo Relacional, muy ágil de emplear y podemos crear todo tipo de estructura y relaciones con nuestra base de datos fácilmente y eficientemente; el ORM de Django al igual que muchos otros de otras tecnologías, asigna un modelo a una tabla en la base de datos en donde una columna en la base de datos corresponde a una propiedad de la tabla
Mediante los modelos, podemos crear, leer, actualizar y eliminar registros en la base de datos, las cuales pueden ser PostgreSQL, MySQL, Oracle y SQLite.
Migraciones para tener la estructura de nuestra base de datos
Maneja un sistema de migraciones en base a clases modelos que definimos que tiene una relación de uno a uno entre el modelo y la migración.
Para crear una migración lo podemos hacer fácilmente y eficientemente, ya que la podemos generar mediante la línea de comandos y toda como código fuente la clase Modelo de nuestro MTV.
Línea de comandos eficiente y precisa
Posee una sencilla línea de comandos para hacer operaciones recurrentes en nuestro proyecto que van desde gestionar las migraciones, crear súper usuarios hasta un sencillo servidor web de desarrollo.
Apps más completas y menos código
Gracias a que estamos trabajando en un ecosistema Python, nos permite extender nuestra app mediante miles de componentes o paquetes que podemos instalar y configurar rápidamente para dotar a nuestra aplicación de más características.
Podemos extender la aplicación de manera modular para una fácil reutilización de estos componentes modulares.
Desarrollado mediante Python, el lenguaje de programación de momento, multifuncional y sintácticamente amigable y muy limpio.
Aparte de todo esto, Django es un framework que viene con todo lo que necesitamos para hacer las aplicaciones más comunes de una manera versátil y escalable.
Apps versátiles
Django es un framework con la cual puedes construir cualquier tipo de aplicación desde nuestro MTV: desde Rest Apis, tiendas en líneas como hacemos en nuestro curso, Blogs y devolver el contenido en cualquier formato como HTML, RSS, JSON, etc.
Algunas de las características principales de Django son:
- Django proporciona las herramientas para hacer la mayoría de las aplicaciones de base, para realizar operaciones comunes como la conexión al abase de datos, administración de usaurios, formularios, entre otros.
- El ORM es el mecanismo que empleamos en este tipo de frameworks para interactuar con la base de datos, con est eORM, podemos abstraernos de crear SQL para conectarnos al a base de datos si no, emplear un conjunto de métodos para realizar estas operacioens, lo mejor de todo es que podemos cambiar fácilmente de un motor de base de datos a otra sin necesidad de cambiar una sola línea de código.
- Seguridad: Una de las ventajas que tenemos de emplear los frameworks es que al estar compuesto de patrones, nos evita cometer errores comunes lo que mejora la seguridad al momento de programar la aplicación.
- Escalabilidad: Django se puede utilizar para construir sitios web de cualquier tamaño, ya sea de millones de visitas o no, podemos escalar la aplicación fácilmente con más módulos, instalando paquetes especificos para Django o Python que luego empleamos como piezas claves al momento del desarrollo.
Framework seguro
Django, al igual que ocurre con otros frameworks como Laravel o CodeIgniter o el mismo Flask, es un framework seguro; que en gran medida se lo debemos a sus capas del MTV, pero también en la protección de elementos sensibles como contraseñas mediante hash; gracias a nuestro ORM también podemos saltarnos vulnerabilidades en base a la inyección del SQL, evitar ataques CSRF y muchísimo más.
Escalable
Un proyecto en Django consta de una o múltiples aplicaciones, las cuales pueden compartir recursos fácilmente y de manera segura gracias al ecosistema de Python y nuevamente gracias a la separación por capas que nos ofrece el propio framework MTV.
Portable
Al poder ejecutar Python en los Sistemas Operativos más famosos como lo son Windows, Linux y MacOs, Django lo podemos ejecutar y desarrollar en donde queramos de una manera sencilla, configurable y segura; aunque, en Windows podemos tener algunar particularidades al momento del desarrollo
Instalación de Django 5
Ahora, con nuestro Python ya listo, lo siguiente que vamos a hacer es instalar Django, que lo podemos instalar fácilmente nuestro gestor de paquetes que lo tenemos de gratis en Python 3:
python -m pip install Django
Y ya con esto podemos empezar a desarrollar nuestras aplicaciones en Django y crear el juego de proyecto/aplicación que lo trataremos en una posterior entrada, pero para no dejarte en ascuas; un proyecto tiene múltiples aplicaciones y los proyectos en Django tienen un orden bien peculiar; aquí lo primero que tienes que entender es cómo está formado un proyecto en Django, y es que en un proyecto nosotros podemos tener múltiples aplicaciones como la que manejamos en nuestro curso de Django:
Cómo empezar con Django
Recuerda que si te interesa desarrollar en Django, en nuestro curso de Django que puedes tomar en esta plataforma podrás aprender esto y mucho más.
Puedes obtener más información en la documentación oficial y recuerda que en siguientes guías vamos a ver como usar Django para desarrollar nuestros proyectos.
Vamos a empezar hablando sobre el framework, sobre que es y las ventajas que nos ofrece:
Ya con una idea básica del framework, hablamos sobre el MTV, que es la variación del MVC:
Vamos a empezar a crear una aplicación básica, para eso lo primero que necesitas conocer es cómo crear un proyecto y aplicación en Django, aparte de para qué sirve cada una de ellas ya que son los componentes claves en cualquier proyecto de Django:
Una de las diferencias fundamentales que tenemos en Django si lo comparamos con otros framewoks, es la distinción entre proyecto y aplicación, que en Django corresponde a una estructura y configuración, así que, ya creado nuestro proyecto, creamos la primera aplicación:
Una vez tengas ya listo tu Django instalado en tu equipo, y tu proyecto y al menos una aplicación generado, lo siguiente que seguramente quieres hacer, es echar tu primera línea de código, tu hola mundo en Django que es la carta de presentación en cualquier lenguaje de programación o framework que quieras iniciar:
Un punto muy importante en Django, es que parte del MTV es formado por un ruteo, que nosotros tenemos que definir para conectar la URLs a una vista en Django, y esto lo podemos hacer fácilmente con un archivo de configuración para tal fin que nos permite mapear todos los componentes:
Una vez que conozcas las rutas, el siguiente paso es saber como darle un nombre, esto es muy utíl para referenciar más adelante las mismas de una manera muy fácil:
Las bases de datos son un componente fundamental hoy en día que nos permite hacer todos nuestros datos persistentes y por lo tanto llevar nuestro proyecto en Django a otro nivel; pero para eso necesitas aprender cómo realizar esta conexión a una base de datos MySQL con Django correctamente:
Una vez conectada a la base de datos, necesitamos trabajar con la capa de los datos, que no puede ser otra que la del modelo, que nos permite ir conectándonos a una tabla (ya previamente creada mediante las migraciones) en particular para ya sea obtener datos, eliminarlos, actualizarlos o simplemente crear nuevos registro:
Así que en este punto ya tenemos todo listo, y podemos hacer algo más interesante cómo crear nuestras primeras vistas, las vistas más sencillas o una de las más sencillas que podemos construir serían la de listados en Django, para mostrar un conjunto de registros; aquí trabajamos por completo con nuestro MTV, para definir la lógica para manipular los datos, obtener los datos y desplegarlos en un template HTML con ayuda de unas directivas de Django:
Para interactuar con los distintos controladores/vistas que existen en Django, lo hacemos mediante el sistema de rutas, ya esto es común en este tipo de framework:
Ya con un poco el proyecto en Django iniciado, es buena idea conocer algunas comandos importantes del Framework:
Otro aspecto que debemos de considerar, es conocer cuales son las entidades que vamos a crear, en Django al igual que muchos otros frameworks, lo hacemos mediante la capa de los modelos:
Y luego, para poder crear las tablas relacionadas a los modelos en la base de datos, lo hacemos mediante las migraciones:
El manejo de los formularios es fundamental para realizar casi cualquier operación, es el formato que existe por excelencia para obtener datos del usuario y poder crear y actualizar registros y con esto, interactuar con la data:
Creado algunos registros, podemos mostrarlos en un listado:
Siguiendo con la creación de nuestro CRUD, la siguiente operación que vamos a realizar es la de crear la vista de detalle:
La siguiente operación es la de eliminar los registros:
Muchas veces necesitamos crear un proceso que se ejecute antes de algo, por ejemplo, verificar siempre que un usuario autenticado cumpla con ciertas reglas antes de acceder a diferentes módulos, esto se puede configurar mediante los middleware:
Una de las grandes características que tenemos disponibles en Django y que hace una diferencia con cualquier sistema web, es Django Admin, que desde el cual podemos realizar la gestión de nuestro sitio web con muy pocas líneas de código:
Las Rest Api son piezas fundamentales casi en cualquier sistema, conocer como crear las mismas, son un paso muy importante que te servirán cuando queramos expandir la aplicación, e inclusive expandir la misma mediante autenticación con Tokens, para todas estas maravillas, empleamos Django Rest Framework:
Hay muchos aspectos que convierten a Django en un framework muy robusto que no solamente es su modularidad, grandes funcionalidades de base, si no, su integración con paquetes de Python o exlucusivamente para Django, como lo es Channels, para crear canales en una aplicación asíncrona:
Curso y Libro para dominar Django
Si te quedastes con ganas de más, te traigo a tu disposición estos recursos premium.
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.
En este libro, 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.
Este curso 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.
Esta guía tiene la finalidad de dar los primeros pasos con Django; con esto, vamos a plantear dos cosas:
- No es una guía 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.
Recuerda que puedes consultar el listado