Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

453
Vistas
¿Cómo obtener los datos de posición del joystick en el servidor del matraz?

Me gustaría obtener los datos de posición del joystick js o usarlo en el servidor del matraz. Intenté usar ajax:

pitón:

@app.route('/test', métodos=['GET', 'POST']) def test_ajax():

 if request.method == "POST": data = request.json print('data:', data) result = {'url': url_for('index')} print('result:', result) return jsonify(result) else: return render_template('index.html') 

 <div class="container fluid"> <h1>Joystick</h1> <div id="joy1Div" style="width:200px;height:200px;margin-bottom:20px;"></div> </div> <script type="text/javascript"> var Joy1 = new JoyStick('joy1Div', {}, function(stickData) { joy1IinputPosX.value = stickData.xPosition; joy1InputPosY.value = stickData.yPosition; joy1Direzione.value = stickData.cardinalDirection; joy1X.value = stickData.x; joy1Y.value = stickData.y; }); </script> <script> data = {'ID': 'foobar'}; var joystick = document.getElementById('joy1Div'); joy1X.onchange = function() { $.ajax({ type: "POST", url: "/test", contentType: 'application/json;charset=UTF-8', data: JSON.stringify(data, null, '\t'), dataType: 'json', success: function(data) { window.location.href = data['url'] }, error: function(response) { alert(response) }, }); }; </script>

Cada vez que cambia la posición del joystick, me gustaría enviar los datos de posición al matraz.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Simplemente puede usar la función de devolución de llamada para enviar los datos del joystick. En este ejemplo, uso fetch para transferir los datos a través de AJAX.

 from flask import Flask from flask import ( jsonify, render_template, request ) app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/process', methods=['POST']) def process(): data = request.get_json() print(data) return jsonify(message='Success', stickdata=data)
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="joy1Div" style="width:200px;height:200px;margin-bottom:20px;"></div> <script type="text/javascript" src="{{ url_for('static', filename='js/joy.min.js') }}"></script> <script type="text/javascript"> (function() { const joy1 = new JoyStick('joy1Div', {}, function(stickData) { fetch('/process', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(stickData) }).then(resp => resp.json()) .then(data => console.log(data)); }); })(); </script> </body> </html>

Si acepta la sugerencia legítima de usar websockets, recomendaría Flask-SocketIO .

 from flask import Flask from flask import render_template from flask_socketio import SocketIO app = Flask(__name__) app.secret_key = 'your secret here' socketio = SocketIO(app) @app.route('/') def index(): return render_template('index.html') @socketio.on('stick') def handle_stick(data): print(data) if __name__ == '__main__': socketio.run(app)
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="joy1Div" style="width:200px;height:200px;margin-bottom:20px;"></div> <script src="https://cdn.socket.io/4.4.1/socket.io.min.js" integrity="sha384-fKnu0iswBIqkjxrhQCTZ7qlLHOFEgNkRmK2vaO/LbTZSXdJfAu6ewRBdwHPhBo/H" crossorigin="anonymous"></script> <script type="text/javascript" src="{{ url_for('static', filename='js/joy.min.js') }}"></script> <script type="text/javascript"> (function() { const sock = io(); const joy1 = new JoyStick('joy1Div', {}, function(stickData) { sock.emit('stick', stickData); }); })(); </script> </body> </html>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda