[PYTHON] Vue basée sur les fonctions Django

introduction

Ici, nous allons expliquer les bases de la vue basée sur les fonctions de django. Écrivez dans views.py sous le répertoire de l'application. Supposons que vous souhaitiez utiliser SampleModel dans models.py comme modèle.

Afficher la fonction pour la page de liste

Cette fonction peut être utilisée pour les pages qui répertorient plusieurs enregistrements, comme la page de liste d'articles d'un blog.

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_listest une liste de tous les enregistrements contenus dans le modèle à afficher. contextest un dictionnaire qui montre la correspondance entre le nom de la variable lors de l'incorporation de la variable dans le fichier HTML qui est le modèle et le nom de la variable dans cette fonction. Ensuite, dans la fonction finalerender, spécifiez le fichier HTML qui sera le modèle et le contextementionnés ci-dessus (le premier argument serarequest`).

Afficher la fonction pour la page nouvellement créée

Cette fonction peut être utilisée pour les pages qui créent de nouveaux enregistrements, comme la création de nouveaux articles pour les 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')

Tout d'abord, à ʻif request.method == 'POST', le traitement lorsque POST est envoyé est décrit. Utilisez la méthode Model.objects.create pour créer un nouvel enregistrement (ici ʻobject) en fonction du contenu de la requête envoyée par POST, et enregistrez-le dans la base de données avec la méthode save (). Si l'écriture dans la base de données réussit, la page spécifiée par redirect () sera affichée. Si la page est appelée avec GET au lieu de POST (par exemple, si elle est accédée en tapant l'URL normalement), le fichier HTML modèle spécifié parrender ()sera appelé.

Afficher la fonction pour la page de détail

Une fonction qui peut être utilisée sur des pages qui affichent des détails d'enregistrement, comme des pages individuelles d'articles de blog.

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 est celui qui a extrait l'enregistrement correspondant des enregistrements enregistrés dans le modèle (pk` est la clé primaire). Affichez les informations relatives à «objet» en l'incorporant dans une variable du fichier HTML modèle.

Afficher la fonction pour modifier la page

Cette fonction peut être utilisée pour les pages qui mettent à jour le contenu d'un enregistrement une fois créé, comme l'écran d'édition d'un article de blog.

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)

Comme pour la vue présentée ci-dessus, spécifiez l'enregistrement cible avec ʻobject et spécifiez le nom de la variable à incorporer dans le fichier de modèle HTML avec context`. Lorsque la mise à jour est POSTÉE, elle écrase le contenu de chaque champ de la base de données.

Afficher la fonction pour les pages supprimées

Cette fonction peut être utilisée pour les pages qui suppriment des enregistrements créés, comme l'écran de suppression d'articles de blog.

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)

«Objet» et «contexte» sont similaires aux vues présentées ci-dessus. Utilisez la méthode delete pour supprimer un enregistrement de la base de données.

Résumé

Ici, nous avons présenté les bases de la vue basée sur les fonctions de django. La prochaine fois, j'expliquerai urls.py.

Recommended Posts

Vue basée sur les fonctions Django
Vue basée sur les classes Django
Modèle de configuration de Django2 View
Django
Django Note 4
Mémorandum Django
Installation de Django
Résumé de Django
Test Django
Django # 2 (modèle)
Django Note 5
Résumé du tutoriel Django pour les débutants par les débutants ③ (Afficher)
Django Hands On
Touchez django
Mémo Django
Résumé de Django
Les bases de Django
Django Shoho
Paramètres initiaux de Django
Django + Docker
Ajax dans Django (en utilisant la vue de classe générique)
Glossaire Django
Installation de Django
Django: Références
Django Note 1
Django Note 3
Django Note 2
Démarrage de Django
Mémo Django
Django NullCharField
Afficher la vue détaillée de Django au format PDF (prise en charge du japonais)
DJango Memo: depuis le début (création d'une vue)
Passer les informations de connexion à afficher dans Django
Résumé du didacticiel Django pour les débutants par les débutants ④ (Vue générique)
Spécifiez l'URL de la vue dans le modèle Django