En este tutorial, aprenderás cómo usar Django y Python para crear una aplicación de lista de tareas. Esta aplicación le permitirá a los usuarios crear, editar y eliminar tareas de una lista. Utilizaremos la interfaz de línea de comandos de Django para crear la aplicación y el servidor web de Django para ejecutarla.
Prerrequisitos
Antes de comenzar este tutorial, asegúrate de tener los siguientes requisitos cumplidos:
- Tener instalado Python 3.6 o superior
- Tener instalado Django 2.1 o superior
- Tener un editor de texto como Sublime Text, Atom o Visual Studio Code
Crear un proyecto Django
El primer paso para crear nuestra aplicación de lista de tareas es crear un proyecto Django. Para hacer esto, abrimos una terminal y ejecutamos el siguiente comando:
django-admin startproject todo_list
Esto creará un directorio llamado todo_list
con los archivos necesarios para nuestro proyecto. Ahora, vamos a entrar en el directorio y ejecutar el servidor web de Django:
cd todo_list
python manage.py runserver
Esto iniciará el servidor web en http://127.0.0.1:8000/
. Si abres esta dirección en tu navegador, deberías ver la página de inicio de Django.
Crear una aplicación Django
Ahora que tenemos un proyecto Django creado, vamos a crear una aplicación. Esta aplicación contendrá todo el código necesario para nuestra lista de tareas. Para crearla, ejecutamos el siguiente comando en la terminal:
python manage.py startapp todo_list_app
Esto creará un directorio llamado todo_list_app
con los archivos necesarios para nuestra aplicación. Ahora, necesitamos agregar nuestra aplicación al archivo settings.py
del proyecto. Para hacer esto, abrimos el archivo settings.py
y agregamos todo_list_app
a la lista INSTALLED_APPS
.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'todo_list_app',
]
Crear un modelo
Ahora que tenemos nuestra aplicación creada, vamos a crear un modelo para nuestras tareas. Un modelo es una clase de Python que contiene la lógica de nuestra aplicación. Para crear el modelo, abrimos el archivo models.py
de nuestra aplicación y agregamos el siguiente código:
from django.db import models
class Task(models.Model):
title = models.CharField(max_length=200)
completed = models.BooleanField(default=False)
date_created = models.DateTimeField(auto_now_add=True)
Este código define un modelo llamado Task
que tiene tres campos: title
, completed
y date_created
. Una vez que hayamos definido el modelo, necesitamos hacer que Django lo registre en la base de datos. Para hacer esto, ejecutamos el siguiente comando en la terminal:
python manage.py makemigrations
Esto creará un archivo de migración para nuestro modelo. Ahora, ejecutamos el siguiente comando para aplicar la migración a la base de datos:
python manage.py migrate
Crear vistas
Ahora que tenemos nuestro modelo creado, vamos a crear las vistas para nuestra aplicación. Las vistas son funciones de Python que manejan las solicitudes entrantes y devuelven una respuesta. Para crear las vistas, abrimos el archivo views.py
de nuestra aplicación y agregamos el siguiente código:
from django.shortcuts import render
from django.http import HttpResponse
from .models import Task
def index(request):
tasks = Task.objects.all()
context = {
'tasks': tasks
}
return render(request, 'todo_list_app/index.html', context)
def complete_task(request, task_id):
task = Task.objects.get(id=task_id)
task.completed = True
task.save()
return HttpResponse('Task marked as completed!')
def delete_task(request, task_id):
task = Task.objects.get(id=task_id)
task.delete()
return HttpResponse('Task deleted!')
Estas vistas manejan las solicitudes de la siguiente manera:
index
: devuelve una lista de tareascomplete_task
: marca una tarea como completadadelete_task
: elimina una tarea
Crear plantillas
Ahora que tenemos nuestras vistas creadas, vamos a crear las plantillas para mostrar la lista de tareas. Las plantillas son archivos HTML que contienen código HTML y etiquetas especiales para mostrar datos de nuestra aplicación. Para crear las plantillas, creamos un directorio llamado templates
en nuestra aplicación y luego creamos un archivo llamado index.html
. Luego, abrimos este archivo y agregamos el siguiente código:
<h1>Todo List</h1>
<ul>
{% for task in tasks %}
<li>
{{ task.title }}