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.
Avant de commencer, assurez-vous d'avoir :
django-admin startproject todo_project cd todo_project
python manage.py startapp todo
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
INSTALLED_APPS = [ # Other installed apps 'todo', ]
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
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
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')
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')), ]
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 └── ...
mkdir -p todo/templates/todo
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
Un formulaire pour ajouter une nouvelle tâche.
python manage.py startapp todo
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
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.
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
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!