Django es un framework web de alto nivel para Python que permite el desarrollo rápido y limpio de aplicaciones web. Fue diseñado para ayudar a los desarrolladores a crear aplicaciones web complejas de manera rápida y con menos código. Django sigue el principio de "No te repitas" (DRY, por sus siglas en inglés) y fomenta el uso de patrones de diseño como el Modelo-Vista-Controlador (MVC), aunque en Django se conoce como Modelo-Vista-Plantilla (MVT).
Contenido
- ¿Qué es Django?
- Instalación de Django
- Creación de un Proyecto Django
- Estructura de un Proyecto Django
- Creación de una Aplicación en Django
- Configuración de la Base de Datos
- Migraciones en Django
- Creación de Vistas y Plantillas
- Enrutamiento de URLs
- Administración de Django
- ¿Qué es Django?
Django es un framework web de alto nivel que permite el desarrollo rápido de aplicaciones web seguras y mantenibles. Algunas de sus características clave incluyen:
- ORM (Object-Relational Mapping): Permite interactuar con bases de datos usando objetos Python en lugar de SQL.
- Sistema de Plantillas: Facilita la creación de interfaces de usuario dinámicas.
- Sistema de Administración: Proporciona una interfaz de administración lista para usar.
- Autenticación y Autorización: Maneja la autenticación de usuarios y permisos.
- Internacionalización: Soporte para múltiples idiomas y localizaciones.
- Instalación de Django
Para instalar Django, necesitas tener Python y pip (el gestor de paquetes de Python) instalados en tu sistema. Puedes instalar Django utilizando pip con el siguiente comando:
Para verificar que Django se ha instalado correctamente, puedes ejecutar:
- Creación de un Proyecto Django
Un proyecto Django es una colección de configuraciones y aplicaciones para una aplicación web específica. Para crear un nuevo proyecto Django, utiliza el comando django-admin startproject
seguido del nombre del proyecto:
Esto creará una estructura de directorios como la siguiente:
- Estructura de un Proyecto Django
- manage.py: Un script que ayuda a gestionar el proyecto.
- myproject/: El paquete del proyecto.
- init.py: Un archivo vacío que indica que este directorio debe ser tratado como un paquete Python.
- settings.py: Configuraciones del proyecto.
- urls.py: Declaraciones de URL para el proyecto.
- wsgi.py: Una entrada para servidores web compatibles con WSGI.
- Creación de una Aplicación en Django
En Django, una aplicación es un componente web que realiza una tarea específica. Puedes crear una nueva aplicación dentro de tu proyecto usando el comando startapp
:
Esto creará una estructura de directorios como la siguiente:
- Configuración de la Base de Datos
Django soporta varias bases de datos, incluyendo SQLite, PostgreSQL, MySQL y Oracle. La configuración de la base de datos se realiza en el archivo settings.py
. Por defecto, Django usa SQLite:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / "db.sqlite3", } }
- Migraciones en Django
Las migraciones son una forma de aplicar cambios en el esquema de la base de datos. Para crear y aplicar migraciones, usa los siguientes comandos:
- Creación de Vistas y Plantillas
Las vistas en Django son responsables de procesar las solicitudes y devolver respuestas. Puedes definir una vista en views.py
:
Para usar plantillas, primero crea un directorio templates
dentro de tu aplicación y un archivo HTML dentro de él. Luego, configura settings.py
para incluir la ruta de las plantillas:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
- Enrutamiento de URLs
El enrutamiento de URLs se define en urls.py
. Puedes mapear URLs a vistas específicas:
from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), ]
- Administración de Django
Django incluye una interfaz de administración que puedes habilitar registrando tus modelos en admin.py
:
Para acceder a la interfaz de administración, primero crea un superusuario:
Luego, inicia el servidor de desarrollo y accede a /admin
en tu navegador.
Conclusión
En esta introducción a Django, hemos cubierto los conceptos básicos y la estructura de un proyecto Django, así como la creación de aplicaciones, configuración de bases de datos, migraciones, vistas, plantillas, enrutamiento de URLs y la administración de Django. Con estos fundamentos, estás listo para comenzar a desarrollar aplicaciones web robustas y escalables con Django.
En el siguiente tema, profundizaremos en la construcción de aplicaciones web completas utilizando Django, explorando características avanzadas y mejores prácticas.
Curso de Programación en Python
Módulo 1: Introducción a Python
- Introducción a Python
- Configuración del Entorno de Desarrollo
- Sintaxis de Python y Tipos de Datos Básicos
- Variables y Constantes
- Entrada y Salida Básica
Módulo 2: Estructuras de Control
- Sentencias Condicionales
- Bucles: for y while
- Herramientas de Control de Flujo
- Comprensiones de Listas
Módulo 3: Funciones y Módulos
- Definición de Funciones
- Argumentos de Función
- Funciones Lambda
- Módulos y Paquetes
- Visión General de la Biblioteca Estándar
Módulo 4: Estructuras de Datos
Módulo 5: Programación Orientada a Objetos
Módulo 6: Manejo de Archivos
- Lectura y Escritura de Archivos
- Trabajo con Archivos CSV
- Manejo de Datos JSON
- Operaciones de Archivos y Directorios
Módulo 7: Manejo de Errores y Excepciones
- Introducción a las Excepciones
- Manejo de Excepciones
- Lanzamiento de Excepciones
- Excepciones Personalizadas
Módulo 8: Temas Avanzados
- Decoradores
- Generadores
- Administradores de Contexto
- Concurrencia: Hilos y Procesos
- Asyncio para Programación Asíncrona
Módulo 9: Pruebas y Depuración
- Introducción a las Pruebas
- Pruebas Unitarias con unittest
- Desarrollo Guiado por Pruebas
- Técnicas de Depuración
- Uso de pdb para Depuración
Módulo 10: Desarrollo Web con Python
- Introducción al Desarrollo Web
- Fundamentos del Framework Flask
- Construcción de APIs REST con Flask
- Introducción a Django
- Construcción de Aplicaciones Web con Django
Módulo 11: Ciencia de Datos con Python
- Introducción a la Ciencia de Datos
- NumPy para Computación Numérica
- Pandas para Manipulación de Datos
- Matplotlib para Visualización de Datos
- Introducción al Aprendizaje Automático con scikit-learn