Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AJAX将变量从javascript传递到flask_Javascript_Ajax_Flask - Fatal编程技术网

使用AJAX将变量从javascript传递到flask

使用AJAX将变量从javascript传递到flask,javascript,ajax,flask,Javascript,Ajax,Flask,我已经研究了许多堆栈溢出问题,它们已经让我找到了解决方案的一半,但是我在尝试从请求中提取数据时遇到了困难 JAVASCRIPT var teamData = homeTeam + "-" + awayTeam; $.ajax({ url: "/teamSelected", type: "GET", data: teamData, success: fun

我已经研究了许多堆栈溢出问题,它们已经让我找到了解决方案的一半,但是我在尝试从请求中提取数据时遇到了困难

JAVASCRIPT

var teamData = homeTeam + "-" + awayTeam;
        $.ajax({
                url: "/teamSelected",
                type: "GET",
                data: teamData,
                success: function(response) {
                alert(response);
            },
        });
import csv
import time
import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)

@app.route("/")
def index():
    return render_template('main.html')

@app.route("/teamSelected")
def new():
    data = request.args.get('teamData')
    return data;

if __name__ == "__main__":
    app.run(debug=True)
teamData的形式类似于:“切尔西西汉姆”

烧瓶

var teamData = homeTeam + "-" + awayTeam;
        $.ajax({
                url: "/teamSelected",
                type: "GET",
                data: teamData,
                success: function(response) {
                alert(response);
            },
        });
import csv
import time
import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)

@app.route("/")
def index():
    return render_template('main.html')

@app.route("/teamSelected")
def new():
    data = request.args.get('teamData')
    return data;

if __name__ == "__main__":
    app.run(debug=True)
目前这给了我一个“
500(内部服务器错误)

代码的目的是从下拉列表中选择团队名称,这些名称通过AJAX调用传递。python脚本随后将获取这些数据,收集关于给定游戏的信息,并将实时评论更新返回到javascript,然后我将把这些更新呈现到网页上

我在这里的知识落在
data=request.args.get('jsdata')
行。老实说,这只是我从我见过的其他解决方案中复制出来的东西,我尝试复制其他解决方案却没有成功

抱歉,我知道这是一个经常被问到的问题,但我似乎无法理解。不过先谢谢你

编辑

据我所知,其他解决方案讨论传递表单数据或JSON数据,而这里我只是尝试传递单个变量。如果有解决方案,我很想看看,但仍然没有找到一个对我有帮助的解决方案。

您可以为键值对创建一个对象,并通过以下方式将其传递给AJAX调用:

$.ajax({
  url: '/teamSelected',
  type: "GET",
  data: { teamData: 'myTeam-yourTeam'},
  success: function(){
    alert(this.url)
  }
});
发送GET请求时,要传递的参数将在URL中编码。在本例中,
teamData
的键值对编码在问号后面,如下所示:

/teamSelected?teamData=myTeam-yourTeam 
request.args
保存查询字符串中的值。因此,在Flask视图中,可以使用
request.args.get('teamData')
检索
teamData
的值

看看这个,更好地了解它是如何工作的