Heim >Backend-Entwicklung >Python-Tutorial >Erstellen einer Django CRUD Todo-App von Grund auf
Ich glaube, der beste Weg, Full-Stack-Entwicklung zu lernen, besteht darin, eine CRUD-App in dieser Sprache mit einfachem Front-Back/End und einer Datenbankverbindung zu erstellen.
Dieser Leitfaden führt Sie durch die Erstellung einer einfachen CRUD-Todo-Anwendung (Erstellen, Lesen, Aktualisieren, Löschen) mit Django. Wir richten das Projekt ein, erstellen eine App und organisieren alles in der von Django empfohlenen Verzeichnisstruktur.
Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes haben:
django-admin startproject todo_project cd todo_project
python manage.py startapp todo
Ihr Ordner sollte so aussehen:
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', ]
Fügen Sie den folgenden Code hinzu, um ein Modell mit Feldern für Aufgabe (Beschreibung) und abgeschlossen (Status) zu erstellen.
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
Nachdem Sie das Modell definiert haben, führen Sie diese Befehle aus, um die Datenbanktabellen für dieses Modell zu erstellen:
python manage.py makemigrations python manage.py migrate
Definieren Sie Ansichten zum Erstellen, Auflisten, Aktualisieren und Löschen von Aufgaben in 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')
Definieren Sie die URLs für jede Ansicht in 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'), ]
Fügen Sie in die Hauptdatei urls.py die URLs der App ein:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('todo.urls')), ]
Erstellen Sie nun HTML-Vorlagen im Vorlagenverzeichnis der Todo-App. Folgen Sie dieser Struktur:
todo/ ├── migrations/ ├── templates/ │ └── todo/ │ ├── list_todos.html │ ├── create_todo.html │ └── update_todo.html ├── models.py ├── views.py └── ...
mkdir -p todo/templates/todo
Zeigt eine Liste von Aufgaben an und stellt Links zum Hinzufügen, Bearbeiten oder Löschen von Aufgaben bereit.
django-admin startproject todo_project cd todo_project
Ein Formular zum Hinzufügen einer neuen Aufgabe.
python manage.py startapp todo
Ein Formular zum Bearbeiten einer vorhandenen Aufgabe.
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
Da nun alles eingerichtet ist, führen Sie den Django-Entwicklungsserver aus, um die App zu testen:
INSTALLED_APPS = [ # Other installed apps 'todo', ]
Besuchen Sie http://127.0.0.1:8000/ in Ihrem Browser. Sie sollten die Todo-Liste sehen und in der Lage sein, Aufgaben zu erstellen, zu aktualisieren und zu löschen.
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
Und das ist es! Sie haben erfolgreich eine Django Todo-App mit einer CRUD-Schnittstelle erstellt. Diese Struktur ist skalierbar und Sie können jetzt zusätzliche Funktionen hinzufügen oder die App mit CSS gestalten. Viel Spaß beim Codieren!
Das obige ist der detaillierte Inhalt vonErstellen einer Django CRUD Todo-App von Grund auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!