Partage
  • Partager sur Facebook
  • Partager sur Twitter

requête POST python & Flask

    2 avril 2020 à 10:18:04

    Bonjour tout le monde.

    Je souhaite pouvoir envoyé des données (en XML) via un script python pour ensuite les afficher.

    J'ai donc 3 fichiers:

    • server.py (script avec flask afin de créer un serveur web et l'afficher)
    • default.html (page html pour flask)
    • client.py (qui lui va envoyer les données sur flask)

    Malheuresement je n'arrive pas trop réaliser mon post, et par la suite l'afficher.

    fichier server.py

    @app.route('/')
    def home():
        data = """\
        Bonjour 
        """
        return TPL("default.html", title='Home', data=data)
    
    
    @app.route('/data', methods=['GET', 'POST']) #allow both GET and POST requests
    def post_data():
        if request.method == 'POST': 
            
            ICI AFFICHER LE RESULTAT DE MON POST
    
            return TPL("default.html", title='Home', data=data)
    
    
        return TPL("default.html", title='Home', data="AUCUNE DONNEES ENVOYE")

    Je pense qu'il faudait que je fasse un requests de ce type:

    requests.post(url='http://127.0.0.1:5000/data', data='MES DONNES A ENVOYE')


    Le soucis c'est que je n'arrive pas à afficher le resultat quand je lance le requests

    Si vous avez une solution et un/des liens pour m'aider je suis preneur :)

    Merci

    -
    Edité par Eolynas 2 avril 2020 à 10:20:14

    • Partager sur Facebook
    • Partager sur Twitter
      3 avril 2020 à 9:15:30

      Les données sont dans request.form, donc tu devrais probablement mettre data=request.form plutôt que data=data (en plus la variable data n'existe pas)
      • Partager sur Facebook
      • Partager sur Twitter
        4 avril 2020 à 10:32:21

        thelinekioubeur a écrit:

        Les données sont dans request.form, donc tu devrais probablement mettre data=request.form plutôt que data=data (en plus la variable data n'existe pas)


        Merci de ta réponse.

        Par contre j'ai pas trop compris ce que tu m'a dis.

        Les données sont dans request.form => Tu entends quoi par là ? car je n'ai pas de request.form

        data=request.form plutôt que data=data => Pareil, je n'ai pas data=data 


        Merci ;)


        • Partager sur Facebook
        • Partager sur Twitter
          4 avril 2020 à 14:03:24

          Déjà 

          • Ne pas oublier de mettre le headers: headers = {'Content-Type': 'application/xml'}
          • Ensuite effectivement ton envoi se fait via req = requests.post('http://127.0.0.1:5000/data', data=myxml, headers=headers)
          • Puis la lecture de la réponse par resp = req.text

          Voit déjà à envoyer tes données correctement et testes si ta réponse est bien celle attendue avec un simple print.

          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

            6 avril 2020 à 7:40:47

            Je parle de ta ligne 15, tu as mis :
              return TPL("default.html", title='Home', data=data)

            donc tu utilise une variable data qui n'existe pas.

            Les données de formulaire sont dans request.form donc essaye :

              return TPL("default.html", title='Home', data=request.form)



            • Partager sur Facebook
            • Partager sur Twitter

            requête POST python & Flask

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown