Hier erklären wir die Grundlagen der funktionsbasierten Ansicht von Django.
Schreiben Sie in views.py
unter das Anwendungsverzeichnis.
Angenommen, Sie möchten "SampleModel" in "models.py" als Modell verwenden.
Diese Funktion kann für Seiten verwendet werden, auf denen mehrere Datensätze aufgelistet sind, z. B. die Artikellistenseite eines Blogs.
views.py
from django.shortcuts import render
from .models import SampleModel
def list_func(request):
object_list = SampleModel.objects.all()
context = {'object_list': object_list}
return render(request, 'app/app_list.html', context)
object_list
ist eine Liste aller Datensätze, die in dem anzuzeigenden Modell enthalten sind.
context
ist ein Wörterbuch, das die Entsprechung zwischen dem Variablennamen beim Einbetten der Variablen in die HTML-Datei, die die Vorlage ist, und dem Variablennamen in dieser Funktion anzeigt.
Geben Sie dann in der letzten Funktion "Rendern" die HTML-Datei an, die die Vorlage sein soll, und den oben genannten Kontext (das erste Argument ist "Anfrage").
Diese Funktion kann für Seiten verwendet werden, die neue Datensätze erstellen, z. B. zum Erstellen neuer Artikel für Blogs.
views.py
from django.shortcuts import render, redirect
from .models import SampleModel
def create_func(request):
if request.method == 'POST':
object = SampleModel.objects.create(
title = request.POST['title'],
text = request.POST['text']
)
object.save()
return redirect('app_list')
else:
return render(request, 'app/app_create.html')
Zunächst wird unter "if request.method ==" POST "die Verarbeitung beim Senden des POST beschrieben. Verwenden Sie die Methode "Model.objects.create", um einen neuen Datensatz (hier "Objekt") gemäß dem Inhalt der von POST gesendeten Anforderung zu erstellen, und registrieren Sie ihn mit der Methode "save ()" in der Datenbank. Wenn das Schreiben in die Datenbank erfolgreich ist, wird die durch "redirect ()" angegebene Seite angezeigt. Wenn die Seite mit "GET" anstelle von "POST" aufgerufen wird (z. B. wenn der Zugriff durch normale Eingabe der URL erfolgt), wird die durch "render ()" angegebene HTML-Vorlagendatei aufgerufen.
Eine Funktion, die auf Seiten verwendet werden kann, auf denen Datensatzdetails angezeigt werden, z. B. auf einzelnen Seiten von Blog-Artikeln.
views.py
from django.shortcuts import render
from .models import SampleModel
def detail_func(request, pk):
object = SampleModel.objects.get(pk=pk)
context = {'object': object}
return render(request, 'app/detail.html', context)
object
ist derjenige, der den entsprechenden Datensatz aus den im Modell registrierten Datensätzen extrahiert hat ( pk
ist der Primärschlüssel).
Die Informationen zu "Objekt" werden in die Variable der Vorlagen-HTML-Datei eingebettet und angezeigt.
Diese Funktion kann für Seiten verwendet werden, die den Inhalt eines einmal erstellten Datensatzes aktualisieren, z. B. den Bearbeitungsbildschirm eines Blog-Artikels.
views.py
from django.shortcuts import render, redirect
from .models import SampleModel
def update_func(request, pk):
object = SampleModel.objects.get(pk=pk)
context = {'object': object}
if request.method == 'POST':
object.title = request.POST['title']
object.text = request.POST['text']
object.save()
else:
return render(request, 'app/app_update.html', context)
Geben Sie wie in der oben eingeführten Ansicht den Zieldatensatz mit "Objekt" an und geben Sie den Variablennamen an, der mit "Kontext" in die HTML-Vorlagendatei eingebettet werden soll. Wenn das Update POSTed ist, überschreibt es den Inhalt jedes Felds in der Datenbank.
Diese Funktion kann für Seiten verwendet werden, auf denen erstellte Datensätze gelöscht werden, z. B. für den Löschbildschirm für Blog-Artikel.
views.py
from django.shortcuts import render, redirect
from .models import SampleModel
def delete_func(request, pk):
object = SampleModel.objects.filter(pk=pk)
context = {'object': object}
if request.method == 'POST':
object.delete()
return redirect('app:app_list')
else:
return render(request, 'app/app_delete.html', context)
"Objekt" und "Kontext" ähneln den oben eingeführten Ansichten. Verwenden Sie die Methode "Löschen", um einen Datensatz aus der Datenbank zu löschen.
Hier haben wir die Grundlagen der funktionsbasierten Ansicht von Django vorgestellt. Nächstes Mal werde ich über urls.py erklären.
Recommended Posts