Publication de valeurs de formulaire dans une vue Flask
Dans une application Flask, accéder aux valeurs de formulaire à partir d'un formulaire HTML soumis par le client peut être difficile si les éléments d'entrée du formulaire n'ont pas d'attribut « nom ».
Problème :
Lorsqu'un formulaire HTML est soumis sans spécifier les attributs « nom » pour ses entrées, Flask le fera renvoie un dictionnaire request.form vide. Cela se produit car le serveur ne peut pas associer les valeurs soumises à des champs de formulaire spécifiques.
Solution :
Pour permettre à Flask d'accéder correctement aux valeurs du formulaire, assurez-vous que chaque élément d'entrée dans le formulaire HTML possède un attribut "name" unique. Cet attribut détermine la clé utilisée pour associer la valeur soumise au champ de formulaire correspondant dans la vue Flask.
Par exemple, considérons le formulaire HTML suivant :
<code class="html"><form method="POST"> <input id="my_input" type="text" value="{{ email }}"> <input id="my_submit" type="submit" value="Submit"> </form></code>
Dans la vue Flask correspondante , le dictionnaire request.form sera vide car les entrées du formulaire manquent d'attributs "name". Pour corriger ce problème, ajoutez les attributs « nom » aux éléments d'entrée :
<code class="html"><form method="POST"> <input name="my_input" id="my_input" type="text" value="{{ email }}"> <input id="my_submit" type="submit" value="Submit"> </form></code>
Avec les attributs « nom » en place, Flask peut désormais associer les valeurs soumises aux champs de formulaire appropriés. Vous pouvez ensuite accéder aux valeurs du formulaire à l'aide du dictionnaire request.form dans la vue :
<code class="python">@app.route('/page', methods=['POST', 'GET']) def get_page(): if request.method == 'POST': print(request.form) # prints {'my_input': 'value'} print(request.form['my_input']) # prints 'value' return render_template('page.html')</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!