demande.POST.get('sth') vs demande.POST['sth'] - différence?
Quelle est la différence entre
request.POST.get('sth')
et
request.POST['sth']
N'a pas trouvé la même question, les deux fonctionnent de la même pour moi, suppose que je peux les utiliser séparément, mais peut-être que je me trompe, c'est pourquoi je demande. Des idées?
Vous devez vous connecter pour publier un commentaire.
request.POST['sth']
de soulever unKeyError
exception si'sth'
n'est pas dansrequest.POST
.request.POST.get('sth')
sera de retourNone
si'sth'
n'est pas dansrequest.POST
.En outre,
.get
vous permet de fournir un paramètre supplémentaire d'une valeur par défaut qui est renvoyée si la clé n'est pas dans le dictionnaire. Par exemple,request.POST.get('sth', 'mydefaultvalue')
C'est le comportement d'un dictionnaire python et n'est pas spécifique à
request.POST
.Ces deux extraits sont fonctionnellement identiques:
Premier extrait:
Deuxième extrait de:
Ces deux extraits sont fonctionnellement identiques:
Premier extrait:
Deuxième extrait de:
Ces deux extraits sont fonctionnellement identiques:
Premier extrait:
Deuxième extrait de:
La principale différence entre le normal dictionnaires d'accès et en y accédant avec .get() est que
Avec
en utilisant quelque chose comme
request.POST['sth']
naîtra une erreur de clé est de savoir si le ket 'sth" n'existe pas.Mais en utilisant la méthode get() dictionnaires sera également vous fournir une meilleure gestion des erreurs
sera de retour la valeur none est la clé "sth n'existe pas"
et aussi en donnant le deuxième paramètre get() sera de retour avec comme valeur par défaut.
si " sth " la clé n'existe pas de valeur dans les données seront
my_default_value
.C'est l'avantage de l'utilisation de la méthode get() de plus normal dictionnaires d'accès.