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.
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 finale
render, spécifiez le fichier HTML qui sera le modèle et le
contextementionnés ci-dessus (le premier argument sera
request`).
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é.
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.
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.
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.
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