Introducción django
¡Vamos a aprender sobre Django, uno de los frameworks más populares para desarrollar aplicaciones web con Python!
1. Introducción a Django #
Django es un framework de alto nivel para desarrollar aplicaciones web rápidamente y con menos código. Fue diseñado para que los desarrolladores puedan centrarse en escribir su aplicación sin preocuparse demasiado por los detalles de bajo nivel. Django sigue el patrón de diseño Modelo-Vista-Controlador (MVC), que separa la lógica de la aplicación en diferentes componentes para facilitar el desarrollo y el mantenimiento.
2. Instalación de Django #
Antes de empezar a trabajar con Django, necesitas instalarlo en tu entorno de desarrollo. La forma más sencilla de instalar Django es usando pip, el gestor de paquetes de Python.
Paso 1: Instalar Django #
Abre la terminal o línea de comandos y ejecuta:
1pip install django
Esto instalará la última versión de Django disponible.
Verificar la instalación #
Para asegurarte de que Django se ha instalado correctamente, puedes verificar la versión instalada con:
1django-admin --version
Deberías ver algo como:
4.x.x
Esto indica que Django se instaló correctamente.
3. Creación de un proyecto Django #
Un proyecto Django es una colección de configuraciones y aplicaciones para tu sitio web. Vamos a crear un proyecto nuevo llamado mi_proyecto.
Paso 1: Crear el proyecto #
Ejecuta el siguiente comando en la terminal para crear un nuevo proyecto:
1django-admin startproject mi_proyecto
Este comando crea una carpeta llamada mi_proyecto con la siguiente estructura básica:
mi_proyecto/
manage.py
mi_proyecto/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
manage.py: Un script que te ayuda a gestionar el proyecto (por ejemplo, para iniciar el servidor de desarrollo).settings.py: Contiene todas las configuraciones del proyecto.urls.py: Define las rutas de URL de tu aplicación.asgi.pyywsgi.py: Son configuraciones para la interfaz del servidor, que normalmente no necesitarás modificar.
Paso 2: Iniciar el servidor de desarrollo #
Para asegurarte de que todo funciona correctamente, inicia el servidor de desarrollo de Django con el siguiente comando:
1python manage.py runserver
Esto iniciará un servidor local y mostrará algo como:
Starting development server at http://127.0.0.1:8000/
Abre tu navegador web y visita http://127.0.0.1:8000/. Deberías ver una página de bienvenida de Django, lo que indica que tu proyecto está funcionando correctamente.
4. Modelo-Vista-Controlador (MVC) en Django #
Django sigue un patrón muy similar al Modelo-Vista-Controlador (MVC), aunque usa una terminología ligeramente diferente:
- Modelo (Model): Representa los datos y la lógica de negocio. En Django, defines modelos en
models.py. - Vista (View): Gestiona la presentación de los datos. En Django, las vistas están definidas en
views.pyy controlan lo que el usuario ve. - Controlador (Controller): En Django, esto se maneja a través del sistema de URLs y las vistas. Las URLs en
urls.pydirigen las solicitudes a las vistas apropiadas.
Ejemplo básico de MVC en Django #
Supongamos que quieres crear una aplicación sencilla que muestre una lista de tareas.
Paso 1: Crear una aplicación
Dentro de tu proyecto, crea una nueva aplicación llamada tareas:
1python manage.py startapp tareas
Esto creará una carpeta tareas/ con su propia estructura de archivos.
Paso 2: Definir un modelo (Model)
En tareas/models.py, define el modelo para una tarea:
1from django.db import models 2 3class Tarea(models.Model): 4 titulo = models.CharField(max_length=100) 5 descripcion = models.TextField() 6 completada = models.BooleanField(default=False) 7 8 def __str__(self): 9 return self.titulo
Paso 3: Crear una vista (View)
En tareas/views.py, define una vista simple para mostrar una lista de tareas:
1from django.shortcuts import render 2from .models import Tarea 3 4def lista_tareas(request): 5 tareas = Tarea.objects.all() 6 return render(request, 'tareas/lista_tareas.html', {'tareas': tareas})
Paso 4: Configurar la URL (Controller)
En tareas/urls.py, configura la URL para la vista:
1from django.urls import path 2from . import views 3 4urlpatterns = [ 5 path('', views.lista_tareas, name='lista_tareas'), 6]
Asegúrate de incluir estas URLs en tu archivo mi_proyecto/urls.py:
1from django.contrib import admin 2from django.urls import include, path 3 4urlpatterns = [ 5 path('admin/', admin.site.urls), 6 path('tareas/', include('tareas.urls')), 7]
Paso 5: Crear una plantilla (Template)
En la carpeta tareas/templates/tareas/, crea un archivo lista_tareas.html para mostrar la lista de tareas:
1<!DOCTYPE html> 2<html> 3<head> 4 <title>Lista de Tareas</title> 5</head> 6<body> 7 <h1>Mis Tareas</h1> 8 <ul> 9 {% for tarea in tareas %} 10 <li>{{ tarea.titulo }} - {{ tarea.descripcion }}</li> 11 {% endfor %} 12 </ul> 13</body> 14</html>
5. Migraciones y administración #
Migraciones #
Las migraciones en Django son una forma de propagar cambios que realizas en tus modelos (como agregar un nuevo campo o cambiar el tipo de un campo) a la base de datos.
Paso 1: Crear y aplicar migraciones
Para crear las migraciones necesarias para tus modelos, ejecuta:
1python manage.py makemigrations
Esto generará los archivos de migración. Luego, aplica las migraciones a la base de datos:
1python manage.py migrate
Administración de Django #
Django incluye una interfaz de administración que te permite gestionar tus datos de manera fácil.
Paso 1: Crear un usuario administrador
Primero, crea un superusuario para acceder a la interfaz de administración:
1python manage.py createsuperuser
Sigue las instrucciones para establecer un nombre de usuario, correo electrónico y contraseña.
Paso 2: Registrar el modelo en la administración
En tareas/admin.py, registra el modelo Tarea para que sea visible en la administración:
1from django.contrib import admin 2from .models import Tarea 3 4admin.site.register(Tarea)
Paso 3: Acceder a la interfaz de administración
Inicia el servidor de desarrollo de nuevo si no lo tienes corriendo:
1python manage.py runserver
Luego, visita http://127.0.0.1:8000/admin/, inicia sesión con el superusuario que creaste, y podrás gestionar tus tareas desde la interfaz de administración de Django.
Resumen del tema
Conceptos clave #
- Arquitectura MTV (Model-Template-View):
- Model (
models.py): capa ORM para modelar tablas y entidades de base de datos. - Template (
.html): capa de presentación con motor de plantillas de Django ({% for %},{{ var }}). - View (
views.py): capa de lógica de negocio que procesa la petición y renderiza la plantilla o retorna JSON. - URLs (
urls.py): enrutador que mapea patrones de URL hacia las vistas correspondientes.
- Model (
- Comandos de Gestión CLI (
manage.py):startproject,startapp,runserver,makemigrations,migrate,createsuperuser. - Panel de Administración Automático: interfaz web lista para usar (
admin.site.register(Modelo)) con autenticación y permisos integrados.
Qué debes recordar #
Django es un framework batteries-included que sigue el patrón MVT, ofreciendo un ORM robusto, migraciones automáticas y un panel de administración integrado.