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.titleMigraciones
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
authoral modeloPostpara 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.titleMigraciones
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
