Cómo crear una aplicación de lista de tareas con Django y Python

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 tareas
  • complete_task: marca una tarea como completada
  • delete_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 }}