Envoyer des données d'une zone de texte dans Flask?
4 réponses
Sauf si vous voulez faire quelque chose de plus compliqué, l'alimentation des données d'un formulaire HTML dans Flask est assez facile.
- créez une vue qui accepte une requête POST (
my_form_post
). - Accéder aux éléments de formulaire dans le dictionnaire
request.form
.
templates/my-form.html
:
<form method="POST">
<input name="text">
<input type="submit">
</form>
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def my_form():
return render_template('my-form.html')
@app.route('/', methods=['POST'])
def my_form_post():
text = request.form['text']
processed_text = text.upper()
return processed_text
C'est la documentation Flask sur l'accès aux données de requête.
Si vous avez besoin de formulaires plus compliqués qui nécessitent une validation, vous pouvez jeter un oeil à WTForms et Comment pour les intégrer avec Flask .
Remarque: sauf si vous avez d'autres restrictions, vous n'avez pas vraiment besoin de JavaScript du tout pour envoyer vos données (bien que vous puissiez les utiliser).
Déclarez un point de terminaison Flask pour accepter le type D'entrée POST, puis effectuez les étapes nécessaires. Utilisez jQuery pour publier les données.
from flask import request
@app.route('/parse_data', methods=['GET', 'POST'])
def parse_data(data):
if request.method == "POST":
#perform action here
var value = $('.textbox').val();
$.ajax({
type: 'POST',
url: "{{ url_for('parse_data') }}",
data: JSON.stringify(value),
contentType: 'application/json',
success: function(data){
// do something with the received data
}
});
Toutes les interactions entre le serveur (votre application flask) et le client (navigateur) vont par requête et réponse. Lorsque l'utilisateur appuie sur le bouton Soumettre dans votre formulaire, son navigateur envoie une demande avec ce formulaire à votre serveur( application flask), et vous pouvez obtenir le contenu du formulaire comme:
request.args.get('form_name')
En supposant que vous savez déjà comment écrire une vue dans Flask
qui répond à une url, créez-en une qui lit les données request.post
. Pour ajouter le input box
à ces données de publication, créez un formulaire sur votre page avec la zone de texte. Vous pouvez ensuite utiliser jquery
faire
var data = $('#<form-id>').serialize()
Puis postez à votre vue de manière asynchrone en utilisant quelque chose comme ci-dessous.
$.post('<your view url>', function(data) {
$('.result').html(data);
});