Передача массива Javascript в Python Flask - PullRequest
0 голосов
/ 09 декабря 2018

Я разрабатываю и приложение с python flask, и я хочу отправить возвращаемое значение функции Javascript (массив) в функцию python.Ниже приведен код.

Javascript

<script>
  function getVals(){
      a = [ab, cd];
      return a;
  }
</script>

HTML

<a href="/end_stu_live_session">End This</a>

Python

@app.route('/end_stu_live_session')
def end_stu_live_session():
   return render_template('stu_dashboard.html')

Я хочу, чтобы массив из функции Javascript getVals() передавался в функцию Python end_stu_live_session.Любая помощь высоко ценится.Спасибо.

1 Ответ

0 голосов
/ 10 декабря 2018
  • Вы можете отправить возвращаемое значение функции Javascript (массив) в метод Python через Ajax как JSON.
  • Отправлять contentType: 'application/json' из AJAX и получать данные как request.json вКолба.

app.py:

from flask import Flask, render_template, request, jsonify

app = Flask(__name__)

@app.route('/end_stu_live_session',methods=["GET", "POST"])
def end_stu_live_session():
    if request.method == 'POST':
        data = request.json
        return jsonify(data)
    return render_template("home.html")

app.run(debug=True)

home.html:

<html>
    <head>
        <title>Flask Ajax</title>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    </head>
    <body>
        <div id="data"></div>       
        <button id="demo_btn">Dummy button</button>
        <script>
            function getVals(){
                  a = ["ab", "cd"];
                  return a;
            }
            $(document).ready(function () {
                $("#demo_btn").on("click", function() {
                    var js_data = JSON.stringify(getVals());
                    $.ajax({                        
                        url: '/end_stu_live_session',
                        type : 'post',
                        contentType: 'application/json',
                        dataType : 'json',
                        data : js_data
                    }).done(function(result) {
                        console.log(result);
                        $("#data").html(result);
                    }).fail(function(jqXHR, textStatus, errorThrown) {
                        console.log("fail: ",textStatus, errorThrown);
                    });
                });
            });
        </script>       
    </body>
</html>

Выход:

flask ajax request

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...