J'utilise beaucoup cette chose dans mes vues, mais je veux savoir ce que cela signifie exactement.
Que se passe-t-il lorsque nous écrivons request.method == "GET"
ou request.method == "POST"
?
Le résultat de request.method == "POST"
est une valeur booléenne - True
si la requête en cours d'un utilisateur a été effectuée à l'aide de la méthode HTTP "POST", de False
sinon (cela signifie généralement HTTP "GET", mais il y a aussi d'autres méthodes).
Vous pouvez en savoir plus sur la différence entre GET et POST dans les réponses à la question qu'Alasadir vous a indiquée . En bref POST requêtes sont généralement utilisés pour les soumissions de formulaires - ils sont requis si le traitement d'un formulaire change l'état côté serveur (par exemple, ajoute un utilisateur à une base de données, dans le cas d'un formulaire d'enregistrement). GET est utilisé pour les requêtes HTTP normales (par exemple lorsque vous tapez une URL dans votre navigateur) et pour les formulaires qui peuvent être traités sans aucun effet secondaire (par exemple un formulaire de recherche).
Le code est généralement utilisé dans les instructions conditionnelles, pour faire la distinction entre le code de traitement d'un formulaire soumis et le code d'affichage d'un formulaire non lié:
if request.method == "POST":
# HTTP Method POST. That means the form was submitted by a user
# and we can find her filled out answers using the request.POST QueryDict
else:
# Normal GET Request (most likely).
# We should probably display the form, so it can be filled
# out by the user and submitted.
Et voici un autre exemple, tiré directement de Django , en utilisant Django Forms:
from Django.shortcuts import render
from Django.http import HttpResponseRedirect
def contact(request):
if request.method == 'POST': # If the form has been submitted...
form = ContactForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
# ...
return HttpResponseRedirect('/thanks/') # Redirect after POST
else:
form = ContactForm() # An unbound form
return render(request, 'contact.html', {
'form': form,
})
request.method
retourne le type de la méthode de requête qu'elle peut être GET,POST,PUT,DELETE
etc. après le retour, vous le comparez avec votre chaîne. L'opérateur de comparaison fournit toujours une valeur booléenne (True or False
).
Parfois, nous devons gérer la fonctionnalité en fonction du type de méthode demandé.
if request.method == "GET":
# functionality 1
Elif request.method == "POST":
# functionality 2
Elif request.method == "PUT":
# functionality 3
Elif request.method == "DELETE":
# functionality 4
pour la méthode de demande GET
les données sont transmises avec l'url. pour la méthode de requête POST
les données sont passées à l'intérieur du corps. En termes de méthode de sécurité, le type POST
est meilleur.