Partage
  • Partager sur Facebook
  • Partager sur Twitter

serveur python pour requete ajax

    19 janvier 2015 à 20:53:43

    Bonjour,

    Je débute en programmation, et certaines notions me sont encore un peu floues.

    J'aimerai faire un serveur python (python3) le plus simple possible pour juste pouvoir répondre à une requête ajax.

    Comme vous allez le comprendre je veux juste une page avec un bouton et à coté un span. Si on click sur le bouton, le message du span change grâce à ce que lui envoie le serveur python (python3 j'insiste^^).

    Voici mon code html et js (j'ai tout réunis par simplicité je séparerai après) :

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Test CLEM clem</title>
            <script type="text/javascript">
              $("#UID_boutonTest").click(function()
              {
                $.ajax(
                {
                  type : 'GET' // Le type de la requête HTTP.
                  url : '/home/myUserName/Bureau/MonServeurPython/serveur.py', // La ressource ciblée
                  dataType:'json',
                  data    : JSON.stringify( { "messageClient" : "RecoisTuPetitServeur" } ),
                  success : function(data)
                  {
                    if (data !=null)
                    {
                      messageServeur=data.messageServeur;
                      $('#UID_afficheTest').val(messageServeur);
                      document.getElementById('UID_afficheTest').innerHTML = messageServeur;
                    }
                  }/*success : function() {}*/
                });/*$.ajax*/
              });
            </script>
        </head>
        <body>
            <button id="UID_boutonTest" style='left:50px;height:50px;width:200px;'>clickServeur</button>
            <span id="UID_afficheTest"style='text-align: center;'>MESSAGEDUSERVEUR</span>
        </body>
    </html>

    J'ai fais un tuto sur les sockets en python, sur le framework flask, mais je n'y arrive pas. Je sais pas si c'est si simple que çà.

    Merci pour votre aide.

    Cordialement

    mopi

    -
    Edité par mopi42 20 janvier 2015 à 17:28:36

    • Partager sur Facebook
    • Partager sur Twitter
      20 janvier 2015 à 17:27:31

      import sys
      import http.server
      from http.server import HTTPServer
      from http.server import SimpleHTTPRequestHandler
      
      class MyHandler(SimpleHTTPRequestHandler):
      
          def __init__(self,req,client_addr,server):
              SimpleHTTPRequestHandler.__init__(self,req,client_addr,server)
      
          def do_GET(self):
              print("doget")
      
      HandlerClass = MyHandler
      Protocol     = "HTTP/1.1"
      port = 80
      
      server_address = ('localhost', port)
      
      HandlerClass.protocol_version = Protocol
      
      try:
          httpd = HTTPServer(server_address, MyHandler)
          print ("Server Started")
          httpd.serve_forever()
      except KeyboardInterrupt:
          print('Shutting down server')
          httpd.socket.close()

      Merci pour ta réponse.

      Par exemple, j'ai trouvé un exemple de serveur avec http.server

      Mais je ne sais pas si c'est ce serveur qui lance ma page test.html (logiquement si mais comment ou est ce qu'il y a une sorte de "return test.html")

      Et enfin je sais encore moins comment recevoir la requête ajax envoyée par test.html (en cliquant sur le bouton) et comment renvoyer à cette requête quelque chose.

      Est ce plus claire?

      Merci pour ton aide !

      • Partager sur Facebook
      • Partager sur Twitter
        20 janvier 2015 à 18:35:02

        ou même si on part d'un serveur plsu simple je n'arrive pas a afficher ma page html donc encore moins à faire des requetes ajax :

        import http.server 
        from http.server import HTTPServer 
        from http.server import SimpleHTTPRequestHandler 
        
        
        class RequestHandler(SimpleHTTPRequestHandler): 
          def do_GET(self): 
            print("stp envois ma page html serveur") 
        
          def reponse_serveur(self):
            print("j'aimerai recevoir et repondre a ma requete ajax ici")
        
        serveraddr = ('', 8765)
        srvr = HTTPServer(serveraddr, RequestHandler)
        srvr.serve_forever()



        -
        Edité par mopi42 20 janvier 2015 à 18:42:17

        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2015 à 18:54:42

          Pour afficher ta page Html il te faudrait en charger le contenu depuis ton script, et écrire le contenu dans self.wfile dans ton do_GET. (Et je pense que flask ou bottle serait plus simple à utiliser que HttpServer.

          • Partager sur Facebook
          • Partager sur Twitter
            20 janvier 2015 à 19:31:13

            merci pour ta réponse,

            Aurais tu des liens qui explique pour les requetes ajax?

            Parce que j'avais essayé de partir avec le framework flask mais j'avais trouvé çà assez difficile.

            En fait je te parle de requete ajax mais je ne sais même pas si c'est la meilleur solution, en fait je veux juste pouvoir faire des calculs en python et envoyé les résultats au javascript.

            Merci

            • Partager sur Facebook
            • Partager sur Twitter

            serveur python pour requete ajax

            × 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