2016-03-18 12 views
2

Amacım düğmenin kimliğini python komut dosyasına döndürmek ve komut dosyasının yaptıklarını kontrol etmek için kullanmaktır. Bütün bir akşamı denedikten ve temelde denemek ve hatayla uğraştıktan sonra, bununla ilgili biraz hayal kırıklığına uğradım, çünkü basit bir şey olmalıyım.Flask: ajax aracılığıyla dönüş düğmesinin kimliği

Mümkün olduğu kadar çok şeyi azaltmaya çalıştım ancak düğme request.form.get("button") numaralı telefona bir None döndürecek ve bu da bir Hata 400'e neden olacaktır. None.

Herkes bana yardım edebilir mi? için

from flask import Flask, render_template_string, request 
app = Flask(__name__) 

@app.route('/') 
def index(): 
    return render_template_string(''' 
     <html> 
      <head> 
       <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script> 
       <script type="text/javascript"> 
        $(document).ready(function() { 
         $('input').on('click', function() { 
          $.ajax({ 
           url: "{{ url_for('data_post') }}", 
           method: "POST", 
           data: JSON.stringify($(this).attr("id")), 
           contentType: 'application/json;charset=UTF-8', 
           success: function(data) { 
            console.log(data); 
           } 
          }); 
         }); 
        }); 
       </script> 
      </head> 
      <body> 
       <input type="submit" id="testvalue" name="button" value="button"> 
      </body> 
     </html> 
     ''') 


@app.route('/data', methods=['GET', 'POST']) 
def data_post(): 
    text = request.form.get("button") 
    return text 

if __name__ == '__main__': 
    app.run(debug=True) 
+0

Sadece kimliği gönderiyorsunuz. Form verisinde bir isim vermezsin. – dirn

cevap

2

Değişim data_post fonksiyonu:

@app.route('/data', methods=['GET', 'POST']) 
def data_post(): 
    text = request.data 
    return text 

ve her şeyi ince olmalıdır.

+0

Teşekkürler, bu sadece iyi çalışıyor! – ato

İlgili konular