【问题标题】:Send string from JQuery function to Flask [duplicate]将字符串从 JQuery 函数发送到 Flask [重复]
【发布时间】:2017-05-31 08:58:01
【问题描述】:

如何将字符串从 JQuery 函数传递到 Flask 代码?我正在尝试在 Flask 代码中使用类似这样的东西:imname = request.args.get('filename')但它不起作用。

我必须在我的烧瓶代码中写什么来返回 JQuery 函数的“文件名”?

jQuery函数:

<script type = "text/javascript">
$(document).ready(function(){
  $('img').click(function() {
    var src = $(this).attr('src'),
        filename = src.substring(src.lastIndexOf('/')+ 1);
    $('img').removeClass('selected');
    $(this).addClass('selected');
    $('.selected-image span').text(filename);
  });
});
</script>

【问题讨论】:

  • 你应该使用AJAX并在Flask端接收你发送的任何参数并相应地处理它们:)
  • 不幸的是我不知道 AJAX...你能写下我必须做的事情还是太长了?
  • 你想在flask后端访问filename值吗?
  • @Teo 啊,抱歉混淆,AJAX 只是一个 jQuery 方法,这意味着它是一个 JavaScript ...... :) 我添加了一个答案,并提供了更多解释。

标签: javascript jquery python flask


【解决方案1】:

您应该在 JavaScript 端使用 AJAX 调用来调用您在 Flask 应用中设置的 URL:

// example code:
$.ajax({
  url: "http://localhost/some_url",
})
.done(function( data ) {
  if ( console && console.log ) {
    console.log( "Sample of data:", data.slice( 0, 100 ) );
  }
});

然后在 Flask 端处理它,例如:

# example code:
@app.route('/some_url')
def some_url_route():
    a = request.args.get('a', 0, type=int)
    b = request.args.get('b', 0, type=int)
    return jsonify(result=a + b)

在 JavaScript 端返回您需要的数据...

Read more about it here!

【讨论】:

  • 好的,谢谢!但是在烧瓶中,你调用变量'a'和'b'......在JQuery中这些变量在哪里?我必须将 console.log 放在我的代码中的什么地方?
  • 如前所述,这只是“示例代码”。您将在 AJAX 的帮助下以不同的方式发送变量,具体取决于您使用的方法(GET 或 POST),并根据需要命名它们。在 Flask 方面,您将使用相同的名称来进一步处理它们。查看this answer 以更好地了解它。
猜你喜欢
  • 2016-07-12
  • 2016-05-21
  • 2014-07-09
  • 1970-01-01
  • 2019-09-25
  • 2018-09-13
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多