将变量从JavaScript发送到Flask

时间:2017-08-03 01:43:16

标签: javascript python ajax post flask

我是一个完全的初学者,面临将javascript变量传递到烧瓶中的问题。请注意,我的问题与之前提出的问题完全不同。

这是我的代码:

的JavaScript

var dd = {'mvar': 1};

    $.ajax({
      type: "POST",
      contentType: "application/json; charset=utf-8",
      url: "/",
      data: JSON.stringify(dd),
      success: function (data) {
        alert("DONE!")
      },
      dataType: "json"
    });

烧瓶(编辑)的

@app.route('/', methods=['GET', 'POST'])
def new():

  form = InputForm(request.form)
  v = request.get_json().get('mvar')
  print(v)

  return render_template('new.html',form=form,v=v)

然而,当打印出结果时我得到的输出是“”而我预期它是“ 1

真希望专家能帮助我,谢谢!

2 个答案:

答案 0 :(得分:0)

您在Flask代码中正在寻找Request.get_json()方法。

data = request.get_json()

编辑这里是我使用的确切模式:

的javascript:

$.ajax({
    type: "POST",
    url: "{{ url_for("get_post_json") }}",
    contentType: "application/json",
    data: JSON.stringify({hello: "world"}),
    dataType: "json",
    success: function(response) {
        console.log(response);
    },
    error: function(err) {
        console.log(err);
    }
});

蟒:

@app.route('/_get_post_json/', methods=['POST'])
def get_post_json():    
    data = request.get_json()

    return jsonify(status="success", data=data)

答案 1 :(得分:0)

而不是使用

v = request.form.get('mvar', type=int)

使用此

v = request.get_json().get('mvar')

一旦你打印v然后你应该得到它。