Con estas practicas aprenderé cómo construir una aplicación Django utilizando los componentes principales del framework. Antes de comenzar este primer proyecto de Django, debemos de tener una visión general del framework. Así como también el manejo de los diferentes componentes principales para crear una aplicación web completamente funcional: modelos, plantillas, vistas y URLs. Aprenderé cómo funciona Django y cómo interactúan los diferentes componentes del framework.
Sabre cual es la diferencia entre proyectos y aplicaciones de Django, y conocer las configuraciones más importantes de Django. Para construir una aplicación de blog simple que permita a los usuarios navegar por todas las publicaciones y leer publicaciones individuales. También crear una interfaz de administración simple para gestionar y publicar publicaciones. de forma que sepa como ampliar la aplicación de blog con funcionalidades más avanzadas.
Esto debe servir como guía para construir una aplicación de Django completa y proporcionar una visión de cómo funciona el framework. lo que voy a aprender:
- Instalación de Python
- Creación de un entorno virtual de Python
- Instalación de Django
- Creación y configuración de un proyecto de Django
- Construcción de una aplicación de Django
- Diseño de modelos de datos
- Creación y aplicación de migraciones de modelos
- Creación de un sitio de administración para tus modelos
- Trabajo con QuerySets y gestores de modelos
- Construcción de vistas, plantillas y URLs
- Comprensión del ciclo de solicitud/respuesta de Django
- Trabajar con QuerySets y gestores de modelos
- Construir vistas, plantillas y URLs
- Comprensión del ciclo de solicitud/respuesta de Django
Cuando escribes aplicaciones en Python, generalmente utilizas paquetes y módulos que no están incluidos en la biblioteca estándar de Python. Puedes tener aplicaciones en Python que requieran una versión diferente del mismo módulo. Sin embargo, solo se puede instalar una versión específica de un módulo en todo el sistema. Si actualizas la versión de un módulo para una aplicación, podrías terminar rompiendo otras aplicaciones que requieran una versión anterior de ese módulo.
Para abordar este problema, puedes usar entornos virtuales de Python. Con los entornos virtuales, puedes instalar módulos de Python en una ubicación aislada en lugar de instalarlos de forma global. Cada entorno virtual tiene su propio ejecutable de Python y puede tener su propio conjunto independiente de paquetes de Python instalados en sus directorios de sitio.
Desde la versión 3.3, Python viene con la biblioteca venv, que proporciona soporte para crear entornos virtuales ligeros. Al usar el módulo venv de Python para crear entornos de Python aislados, puedes usar diferentes versiones de paquetes para diferentes proyectos. Otra ventaja de usar venv es que no necesitarás privilegios de administración para instalar paquetes de Python.
El comando anterior creará un entorno de Python en un nuevo directorio llamado my_env/. Cualquier biblioteca de Python que instales mientras tu entorno virtual esté activo se colocará en el directorio my_env/lib/python3.10/site-packages.
Puedes desactivar tu entorno en cualquier momento con el comando deactivate
. Puedes encontrar más información sobre venv en https://docs.python.org/3/library/venv.html.
Ejecuta el siguiente comando:
Esto instalará la última versión de Django en el directorio site-packages/ de tu entorno virtual de Python.
Características de Django
Django introduce una colección características, incluyendo algunos cambios incompatibles con versiones anteriores, mientras elimina funcionalidades antiguas. Al ser un lanzamiento basado en el tiempo, no hay cambios drásticos en Django, y es fácil migrar aplicaciones de anteriores versiones. Django agrega varias características como restricciones únicas funcionales para los modelos, soporte incorporado para caché de datos con Redis, una nueva implementación de zona horaria predeterminada utilizando el paquete estándar de Python zoneinfo, un nuevo hasher de contraseñas scrypt, renderizado basado en plantillas para formularios, entre otras nuevas características menores. Django introduce manejadores asíncronos para vistas basadas en clases, una interfaz ORM asíncrona, nueva validación de restricciones de modelos y nuevas plantillas para renderizar formularios.
Visión general de Django
Django es un framework que consiste en un conjunto de componentes que resuelven problemas comunes de desarrollo web. Los componentes de Django están débilmente acoplados, lo que significa que pueden ser gestionados de forma independiente. Esto ayuda a separar las responsabilidades de las diferentes capas del framework; la capa de base de datos no sabe nada sobre cómo se muestra la información, el sistema de plantillas no sabe nada sobre las solicitudes web, y así sucesivamente.
Django ofrece máxima reutilización de código siguiendo el principio DRY (don't repeat yourself). Django también fomenta el desarrollo rápido y te permite escribir menos código aprovechando las capacidades dinámicas de Python, como la introspección.
Puedes leer más sobre las filosofías de diseño de Django en https://docs.djangoproject.com/en/4.1/misc/design-philosophies/.
Principales componentes del framework
Django sigue el patrón MTV (Modelo-Template-Vista). Es un patrón ligeramente similar al conocido patrón MVC (Modelo-Vista-Controlador), donde la Plantilla actúa como Vista y el framework mismo actúa como el Controlador.
Las responsabilidades en el patrón MTV de Django se dividen de la siguiente manera:
- Modelo: Define la estructura de datos lógica y es el controlador de datos entre la base de datos y la Vista.
- Plantilla: Es la capa de presentación. Django utiliza un sistema de plantillas de texto plano que contiene todo lo que el navegador representa.
- Vista: Comunica con la base de datos a través del Modelo y transfiere los datos a la Plantilla para su visualización.
El framework mismo actúa como el Controlador. Envía una solicitud a la vista apropiada, según la configuración de URL de Django. Cuando desarrollas cualquier proyecto de Django, siempre trabajarás con modelos, vistas, plantillas y URLs.