Introducción
Django es un framework web de alto nivel para Python que permite el desarrollo rápido y limpio de aplicaciones web. En esta lección, aprenderás a construir una aplicación web básica utilizando Django. Cubriremos la configuración del proyecto, la creación de modelos, vistas y plantillas, y la implementación de funcionalidades básicas.
Contenido
Configuración del Proyecto Django
Instalación de Django
Primero, asegúrate de tener Django instalado. Puedes instalarlo usando pip:
Creación del Proyecto
Crea un nuevo proyecto Django utilizando el comando django-admin startproject
:
Esto creará una estructura de directorios similar a la siguiente:
Creación de una Aplicación
Dentro de tu proyecto, crea una nueva aplicación con el comando python manage.py startapp
:
Esto añadirá una nueva carpeta myapp
con la siguiente estructura:
Configuración de la Aplicación
Añade tu aplicación a la lista de INSTALLED_APPS
en myproject/settings.py
:
Creación de Modelos
Los modelos en Django representan las estructuras de datos de tu aplicación. Vamos a crear un modelo simple para una aplicación de blog.
Definición del Modelo
Edita myapp/models.py
para definir un modelo Post
:
from django.db import models class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
Migraciones
Después de definir el modelo, crea y aplica las migraciones para actualizar la base de datos:
Definición de Vistas
Las vistas en Django manejan la lógica de la aplicación y devuelven respuestas a las solicitudes del usuario.
Vista de Lista de Posts
Edita myapp/views.py
para añadir una vista que muestre una lista de posts:
from django.shortcuts import render from .models import Post def post_list(request): posts = Post.objects.all() return render(request, 'myapp/post_list.html', {'posts': posts})
Uso de Plantillas
Las plantillas en Django se utilizan para generar HTML dinámico.
Creación de Plantillas
Crea una carpeta templates
dentro de myapp
y añade un archivo post_list.html
:
Plantilla post_list.html
Edita post_list.html
para mostrar la lista de posts:
<!DOCTYPE html> <html> <head> <title>Blog</title> </head> <body> <h1>Blog Posts</h1> <ul> {% for post in posts %} <li>{{ post.title }} - {{ post.created_at }}</li> {% endfor %} </ul> </body> </html>
Configuración de URLs
Configura las URLs para que apunten a la vista que acabamos de crear.
URLs de la Aplicación
Edita myapp/urls.py
(crea el archivo si no existe):
from django.urls import path from . import views urlpatterns = [ path('', views.post_list, name='post_list'), ]
URLs del Proyecto
Incluye las URLs de la aplicación en myproject/urls.py
:
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('myapp.urls')), ]
Ejercicio Práctico
Ejercicio
- Añade un campo
author
al modeloPost
para almacenar el nombre del autor. - Modifica la vista y la plantilla para mostrar el nombre del autor junto con el título y la fecha de creación del post.
Solución
Modificación del Modelo
Edita myapp/models.py
:
class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() author = models.CharField(max_length=50) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
Migraciones
Modificación de la Plantilla
Edita myapp/templates/myapp/post_list.html
:
<!DOCTYPE html> <html> <head> <title>Blog</title> </head> <body> <h1>Blog Posts</h1> <ul> {% for post in posts %} <li>{{ post.title }} by {{ post.author }} - {{ post.created_at }}</li> {% endfor %} </ul> </body> </html>
Conclusión
En esta lección, has aprendido a configurar un proyecto Django, crear modelos, definir vistas, utilizar plantillas y configurar URLs. Estos son los fundamentos para construir aplicaciones web con Django. En el siguiente módulo, profundizaremos en temas más avanzados y funcionalidades adicionales de Django.
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