[PYTHON] Django funktionsbasierte Ansicht

Einführung

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.

Ansichtsfunktion für Listenseite

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").

Ansichtsfunktion für neu erstellte Seite

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.

Ansichtsfunktion für Detailseite

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.

Ansichtsfunktion für Bearbeitungsseite

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.

Anzeigefunktion für gelöschte Seiten

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.

Zusammenfassung

Hier haben wir die Grundlagen der funktionsbasierten Ansicht von Django vorgestellt. Nächstes Mal werde ich über urls.py erklären.

Recommended Posts

Django funktionsbasierte Ansicht
Django klassenbasierte Ansicht
Django2 Konfigurationsmuster anzeigen
Django
Django Note 4
Django Memorandum
Django Installation
Django Zusammenfassung
Django-Test
Django # 2 (Vorlage)
Django Note 5
Django Tutorial Zusammenfassung für Anfänger von Anfängern ③ (Anzeigen)
Django zum Anfassen
Berühre Django
Django Memo
Django Zusammenfassung
Django Grundlagen
Django Shoho
Django Grundeinstellungen
Django + Docker
Ajax in Django (mit generischer Klassenansicht)
Django Glossar
Django Installation
Django: Referenzen
Django Note 1
Django Note 3
Django Note 2
Django-Start
Django Memo
Django NullCharField
Ausgabe Django Detailansicht als PDF (japanische Unterstützung)
DJango Memo: Von Anfang an (Erstellen einer Ansicht)
Übergeben Sie Login-Benutzerinformationen, um sie in Django anzuzeigen
Django Tutorial Zusammenfassung für Anfänger von Anfängern ④ (Generic View)
Geben Sie die Ansichts-URL in der Django-Vorlage an