Maison  >  Article  >  développement back-end  >  Créer une application Django CRUD Todo à partir de zéro

Créer une application Django CRUD Todo à partir de zéro

Patricia Arquette
Patricia Arquetteoriginal
2024-10-27 17:05:30702parcourir

Je pense que la meilleure façon d'apprendre le développement full-stack est de créer une application CRUD dans ce langage avec un simple front-back/end et une connexion à la base de données.
Ce guide vous guidera donc dans la création d’une simple application Todo CRUD (Créer, Lire, Mettre à jour, Supprimer) à l’aide de Django. Nous allons configurer le projet, créer une application et tout organiser dans la structure de répertoires recommandée par Django.

MON Github, Twitter

Conditions préalables

Avant de commencer, assurez-vous d'avoir :

  • Python installé (de préférence version 3.6)
  • Django installé (installez en utilisant pip install django si vous ne l'avez pas encore fait)

Aperçu des étapes

  1. Configuration du projet et de l'application Django
  2. Définir le modèle pour Todo
  3. Création de vues pour les opérations CRUD
  4. Ajout d'URL pour chaque vue
  5. Création de modèles HTML pour l'application
  6. Exécuter le serveur

Étape 1 : configurer le projet et l'application Django

  1. Créez un projet Django nommé todo_project :
   django-admin startproject todo_project
   cd todo_project
  1. Créez une application nommée todo :
   python manage.py startapp todo
  1. Structure des répertoires à ce stade :

Votre dossier devrait ressembler à ceci :

   todo_project/
   ├── manage.py
   ├── todo/                  # App directory created
   │   ├── migrations/
   │   ├── __init__.py
   │   ├── admin.py
   │   ├── apps.py
   │   ├── models.py
   │   ├── tests.py
   │   ├── views.py
   └── todo_project/
       ├── __init__.py
       ├── asgi.py
       ├── settings.py
       ├── urls.py
       ├── wsgi.py
  1. Enregistrez l'application dans todo_project/settings.py : Ouvrez settings.py et ajoutez « todo » à INSTALLED_APPS :
   INSTALLED_APPS = [
       # Other installed apps
       'todo',
   ]

Étape 2 : Définir le modèle Todo

  1. Définissez le modèle Todo dans todo/models.py :

Ajoutez le code suivant pour créer un modèle avec des champs pour la tâche (description) et terminé (statut).

   from django.db import models

   class Todo(models.Model):
       task = models.CharField(max_length=200)
       completed = models.BooleanField(default=False)

       def __str__(self):
           return self.task
  1. Appliquer les migrations :

Après avoir défini le modèle, exécutez ces commandes pour créer les tables de base de données pour ce modèle :

   python manage.py makemigrations
   python manage.py migrate

Building a Django CRUD Todo App from Scratch


Étape 3 : Créer des vues pour les opérations CRUD

Définissez des vues pour créer, répertorier, mettre à jour et supprimer des tâches dans todo/views.py :

from django.shortcuts import render, redirect
from .models import Todo

# Create a new Todo
def create_todo(request):
    if request.method == 'POST':
        task = request.POST['task']
        Todo.objects.create(task=task)
        return redirect('list_todos')
    return render(request, 'todo/create_todo.html')

# List all Todos
def list_todos(request):
    todos = Todo.objects.all()
    return render(request, 'todo/list_todos.html', {'todos': todos})

# Update a Todo
def update_todo(request, todo_id):
    todo = Todo.objects.get(id=todo_id)
    if request.method == 'POST':
        todo.task = request.POST['task']
        todo.completed = 'completed' in request.POST
        todo.save()
        return redirect('list_todos')
    return render(request, 'todo/update_todo.html', {'todo': todo})

# Delete a Todo
def delete_todo(request, todo_id):
    todo = Todo.objects.get(id=todo_id)
    todo.delete()
    return redirect('list_todos')

Étape 4 : ajouter des modèles d'URL

Définissez les URL pour chaque vue dans todo/urls.py :

from django.urls import path
from . import views

urlpatterns = [
    path('', views.list_todos, name='list_todos'),
    path('create/', views.create_todo, name='create_todo'),
    path('update/<int:todo_id>/', views.update_todo, name='update_todo'),
    path('delete/<int:todo_id>/', views.delete_todo, name='delete_todo'),
]

Dans le fichier urls.py principal, incluez les URL de l'application :

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('todo.urls')),
]

Étape 5 : Créer des modèles HTML

Maintenant, créez des modèles HTML dans le répertoire des modèles de l'application Todo. Suivez cette structure :

todo/
├── migrations/
├── templates/
│   └── todo/
│       ├── list_todos.html
│       ├── create_todo.html
│       └── update_todo.html
├── models.py
├── views.py
└── ...
  1. Créer la structure des dossiers de modèles :
   mkdir -p todo/templates/todo
  1. Créer les modèles :

list_todos.html

Affiche une liste de tâches et fournit des liens pour ajouter, modifier ou supprimer des tâches.

   django-admin startproject todo_project
   cd todo_project

créer_todo.html

Un formulaire pour ajouter une nouvelle tâche.

   python manage.py startapp todo

update_todo.html

Un formulaire pour modifier une tâche existante.

   todo_project/
   ├── manage.py
   ├── todo/                  # App directory created
   │   ├── migrations/
   │   ├── __init__.py
   │   ├── admin.py
   │   ├── apps.py
   │   ├── models.py
   │   ├── tests.py
   │   ├── views.py
   └── todo_project/
       ├── __init__.py
       ├── asgi.py
       ├── settings.py
       ├── urls.py
       ├── wsgi.py

Étape 6 : Exécutez le serveur

Maintenant que tout est configuré, lancez le serveur de développement Django pour tester l'application :

   INSTALLED_APPS = [
       # Other installed apps
       'todo',
   ]

Visitez http://127.0.0.1:8000/ dans votre navigateur. Vous devriez voir la liste Todo et pouvoir créer, mettre à jour et supprimer des tâches.

Building a Django CRUD Todo App from Scratch


Structure du répertoire final

   from django.db import models

   class Todo(models.Model):
       task = models.CharField(max_length=200)
       completed = models.BooleanField(default=False)

       def __str__(self):
           return self.task

Building a Django CRUD Todo App from Scratch


Et c'est tout ! Vous avez créé avec succès une application Django Todo avec une interface CRUD. Cette structure est évolutive et vous pouvez désormais ajouter des fonctionnalités supplémentaires ou styliser l'application avec CSS. Bon codage !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn