Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

requêtes AJAX / PYTHON


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 17
    Points : 12
    Points
    12
    Par défaut requêtes AJAX / PYTHON
    Bonjour,

    je suis bloque sur la manière de faire mes requêtes Ajax.
    Ce que je souhaiterais faire c'est d'envoyer la valeur de mon textarea a mon fichier python et qu'une fois que mon fichier python a traite la valeur de textArea il l'envoie

    fichier api.py // fichier auquel j'aimerais envoyer la chaine de caractère de mon texteArea pour le remplacer par le input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    import wikipedia
     
     
    liste_ville = ["paris", "marseille", "lyon", "toulouse", "nice", "nantes", "montpellier", "strasbourg", "bordeaux", "lille", "rennes", "reims", "toulon",
    				"grenoble", "dijon", "angers", "nimes", "villeurbanne", "limoges", "annecy", "perpignan", "metz", "argenteuil", "rouen", "mulhouse", 
    				"montreuil", "caen", "nancy", "tourcoing", "roubaix", "nanterre", "avignon", "dunkerque", "poitiers"]
     
    wiki = wikipedia.set_lang("fr")
     
    a = input()
     
    for i in range(len(a.split())):
    	for j in range(len(liste_ville)):
    		if a.split()[i] == liste_ville[j]:
    			print(wikipedia.summary(a.split()[i], sentences=2))

    fichier .js // fichier ou je recupere la valeur de mon textArea et je renvois une div sur ma page web mais au lieu de renvoyer la valeur que je recupere en input sur ma page web j'aimerais l'envoyer sur mon fichier python et qu'un fois traité par mon fichier python ça renvoit mon "print(wikipedia.summary(a.split()[i], sentences=2))" a la ligne 7 de mon fichier.js a la place de textArea

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    function send_msg(){
    	var textArea = $("#textArea").val()
        if (textArea == ''){
    	alert("Veuillez entrer du texte")
    	}
    	else {
    	$("#chatBot").append('<div class="message_container_send">'+textArea+'</div>')
    	$("#textArea").val('')
    	}
    }
    $("#valider").click(send_msg);
    $("#textArea").keypress(function(event){
        var keycode = (event.keyCode ? event.keyCode : event.which);
    	    if(keycode == '13'){
    	    	send_msg();
    	}
    });
    J'ai bien lu les tutos mais j'ai vraiment du mal avec Ajax alors que ça a pas l'air si compliqué que ça mais bon ... donc merci d'avance pour ceux qui m'aident a progresser

  2. #2
    Membre chevronné Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2012
    Messages
    1 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2012
    Messages : 1 239
    Points : 2 068
    Points
    2 068
    Par défaut
    Salut,

    je ne vois aucune appelle ajax dans ton code, difficile de t'aider......

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    justement je ne vois pas du tout comment faire ...

    Si c'était pour gérer ça en Ajax directement avec et dans mon fichier javascript je sais comment faire, mais pour envoyer la valeur a mon fichier python et renvoyer la valeur de mon fichier python a mon fichier js je vois pas du tout comment faire ...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    j'ai pris ce chemin dis moi ce que vous en pensez ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function send_msg(){
    	var textArea = $("#textArea").val()
    	var request = $.get("/sendRequest/" + $("#textArea").val());
        if (textArea == ''){
    	alert("Veuillez entrer du texte")
    	}
    	else {
    	$("#chatBot").append('<div class="message_container_send">'+request+'</div>')
    	$("#textArea").val('')
    	}
    }
    $("#valider").click(send_msg);
    $("#textArea").keypress(function(event){
        var keycode = (event.keyCode ? event.keyCode : event.which);
    	    if(keycode == '13'){
    	    	send_msg();
    	}
    });
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    from flask import Flask, render_template, jsonify
    import requests
    import wikipedia
     
    app = Flask(__name__)
    search_google_maps = "https://maps.googleapis.com/maps/api/place/textsearch/json"
    api_key = "****"
     
    @app.route("/", methods=["GET"])
    def retrieve():
    	return render_template('grandPy.html')
     
    @app.route("/sendRequest/")	
     
    def wiki():
    	city_list = ["paris", "marseille", "lyon", "toulouse", "nice", "nantes", "montpellier", "strasbourg", "bordeaux", "lille", "rennes", "reims", "toulon",
    					"grenoble", "dijon", "angers", "nimes", "villeurbanne", "limoges", "annecy", "perpignan", "metz", "argenteuil", "rouen", "mulhouse", 
    					"montreuil", "caen", "nancy", "tourcoing", "roubaix", "nanterre", "avignon", "dunkerque", "poitiers"]
     
    	wiki = wikipedia.set_lang("fr")
     
    	for i in range(len(city.split())):
    		for j in range(len(city_list)):
    			if city.split()[i] == city_list[j]:
    				data_wiki = wikipedia.summary(city.split()[i], sentences=2)
    				return jsonify({'result'	:	data_wiki})
     
    if __name__ == "__main__": 
    	app.run(debug=True)

  5. #5
    Membre chevronné Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2012
    Messages
    1 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2012
    Messages : 1 239
    Points : 2 068
    Points
    2 068
    Par défaut
    Salut,

    Lorsque tu dis Python, tu parles d'un langage serveur, tout comme Php ou autre..., et le principe d'ajax c'est d'envoyer des données javascript vers un script serveur (python dans ton cas), puis ce dernier les récupère et renvoi une réponse (selon une logique bien précise... ).

    Je ne suis pas un fan de python mais je pense que le principe est le même, donc si on prend par exemple ta fonction send_msg qui contient un $.get, tu dois utiliser le callback (fonction de rappelle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    function send_msg(){
    	var textArea = $("#textArea").val();
             if (textArea== ''){
    	     alert("Veuillez entrer du texte");
    	}
    	else {
                $.get("/sendRequest/",{ donneesJs : textArea  })
                .done(function(data){//callback de succès
                    $("#chatBot").append('<div class="message_container_send">'+data+'</div>');
    	         $("#textArea").val('');
                })
                .fail(function(erreur){//callback d'erreur
                     alert("Erreur get :"+erreur);
                 });
    	}
    }
    Et dans ton fichier serveur Python, tu dois récupérer la variable donneesJs, je ne sais pas comment ça se fait en python mais en php on met $text=$_GET["donneesJs"]; ou $text=$_POST["donneesJs"] tout dépend de la méthode utilisée soit get ou post.

    Voir la documentation de $.get.

Discussions similaires

  1. [Prototype] Requête AJAX + Espace FREE
    Par Zarx dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 05/11/2007, 15h17
  2. [AJAX] Exécuter 2 requêtes ajax/php.
    Par djalilk dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 22/10/2007, 12h52
  3. [AJAX] Résultat de requête Ajax vide sous IE, mais pas sous FF
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/09/2007, 17h18
  4. Réponse à requête AJAX
    Par Mister Nono dans le forum Struts 1
    Réponses: 2
    Dernier message: 03/07/2007, 14h19
  5. [AJAX] Centraliser les requêtes AJAX afin d'avoir un seul appel
    Par Mike_69 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/03/2007, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo