J'essaie de créer un service flask dans lequel je souhaite envoyer les données provenant d'une requête request.form vers une autre URL au format json. Quelqu'un peut-il m'aider à atteindre cet objectif?
TypeError: redirect() got an unexpected keyword argument 'json' The above is the error here.
Lorsque j'essaye d'exécuter le code ci-dessus, j'obtiens l'erreur suivante:
redirect(url_for('any_method'), json = json.dumps(my_form_dict))
3 Réponses :
Votre problème est que vous transmettez trop d'arguments à la redirection fonction. Il n'attend que trois paramètres, location
, code
et Response
. Si vous souhaitez transmettre des paramètres supplémentaires, utilisez la méthode Flask url_for :
redirect(url_for('any_method', json=form_json))
Notez la différence, vous passiez le url_for
et les champs supplémentaires comme deux paramètres. Dans ma version, j'ai ajouté les champs supplémentaires dans url_for
, donc redirect
ne reçoit qu'un seul paramètre.
Cette réponse a-t-elle résolu votre problème? Si oui, veuillez voter et marquer cette réponse comme correcte.
J'ai également essayé le code ci-dessus mais le request.json de flask ne fonctionne pas avec l'étape ci-dessus. Je ne reçois pas le json dans la demande même après avoir utilisé la manière ci-dessus
Jetez un œil à l'objet de requête, peut-être que vous ne l'envoyez pas sous forme de formulaire
, essayez d'accéder à request.data
Il n'est pas possible de rediriger les requêtes POST. Pour plus d'informations, cliquez ici .
Vous pouvez rediriger les demandes POST en utilisant le code d'état 307. Utilisez:
redirect(url_for('any_method', json=json.dumps(my_form_dict)), code=307)
Pour plus d'informations, reportez-vous à cette réponse: Faire une requête POST lors de la redirection dans flask
Où est exactement le problème? Vous avez déjà la solution, il vous suffit de passer
json = request.form
dans la première route ...Non, ce n'est pas la solution. En essayant de courir avec cela, j'obtiens l'erreur suivante: TypeError: redirect () a obtenu un argument de mot-clé inattendu 'json'
Pourriez-vous fournir plus d'informations? Quels sont vos résultats actuels, qu'attendez-vous? Tout message d'erreur, quelques exemples ...
TypeError: redirect () a obtenu un argument de mot clé inattendu 'json' Ce qui précède est l'erreur ici.
Ok, essayez simplement de modifier la question et ajoutez ces détails pour la rendre plus claire.
D'accord, merci pour la suggestion
Votre question n'est pas claire. Essayez-vous de rediriger la requête POST elle-même? Si oui, il n'est pas possible de rediriger les requêtes POST. Pour plus d'informations, cliquez ici .
Merci, @AndrejsCainikovs de m'avoir effacé, oui j'essayais d'envoyer une redirection POST. Votre commentaire a tout effacé maintenant.
Merci d'avoir confirmé. J'ai ajouté mon commentaire en tant que réponse, et ajouterai plus d'informations / liens dès que je les trouverai. Veuillez accepter ma réponse.