在Python Flask中传递Javascript数组 [英] Passing Javascript array in Python Flask

查看:88
本文介绍了在Python Flask中传递Javascript数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 python flask 开发和应用程序,我想将 JavaScript 函数(数组)的返回值发送到 python 功能.下面是代码.

I'm developing and application with python flask and I want to send the return value of a Javascript function(an array) to a python function. Given below is the code.

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 .任何帮助都将受到高度赞赏.谢谢.

I want the array from the Javascript function getVals() to be passed to the python function end_stu_live_session. Any help is highly appreciated. Thanks.

推荐答案

  • 您可以通过Ajax将JSON函数(数组)的返回值作为JSON发送给Python方法.
  • 从AJAX发送 contentType:'application/json',并在Flask中以 request.json 接收数据.
    • You can send the return value of a Javascript function(an array) to a Python method via Ajax as JSON.
    • Send contentType: 'application/json' from AJAX and receiving the data as request.json in Flask.
    • 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>
      

      输出:

      这篇关于在Python Flask中传递Javascript数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆