python服务器如何通过一个get请求返回多个值?

使用的是flask服务器,现在从前端传来一个get请求:classID=D615。
现在服务器端从名为“RSCC”的数据库中选取2张表(表名分别为score和teacher),分别查找对应的内容。对应的查询内容为:
“select 姓名,语文,数学 from RSCC.score where class="classID"”以及“select 班主任姓名 from RSCC.teacher where class="classID"”
将以上查询结果分别赋值为sc="{"姓名":"张三","语文":89,"数学":88}"以及nm="{"班主任姓名":"李四"}"
现在的问题是,如何一次性将sc和nm传回前端,以及前端如何用JS来一次性接收到这两个JSON字符串?

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
在 Flask 中,可以使用 jsonify 函数将多个 JSON 字符串打包成一个 HTTP 响应返回给前端。同时,前端可以使用 XMLHttpRequest 对象来发送 GET 请求并接收服务器返回的 JSON 数据。

下面是一个示例的 Flask 代码,用于从名为“RSCC”的数据库中选取 score 和 teacher 两张表,分别查询对应的内容,并将查询结果打包成 JSON 字符串返回给前端:

from flask import Flask, jsonify
import sqlite3

app = Flask(__name__)

@app.route('/get_data')
def get_data():
    class_id = request.args.get('classID')
    conn = sqlite3.connect('RSCC.db')
    cursor = conn.cursor()
    cursor.execute('select 姓名,语文,数学 from score where class=?', (class_id,))
    score_data = cursor.fetchone()
    sc = {
        '姓名': score_data[0],
        '语文': score_data[1],
        '数学': score_data[2],
    }
    cursor.execute('select 班主任姓名 from teacher where class=?', (class_id,))
    teacher_data = cursor.fetchone()
    nm = {
        '班主任姓名': teacher_data[0],
    }
    conn.close()
    return jsonify({'score': sc, 'teacher': nm})

在上面的代码中,get_data 函数首先从 GET 请求参数中获取 classID,然后连接数据库,分别查询 score 和 teacher 两张表中对应的内容,并将查询结果分别赋值为 scnm。最后,使用 jsonify 函数将这两个 JSON 字符串打包成一个 HTTP 响应返回给前端。

在前端,可以使用以下 JavaScript 代码发送 GET 请求并接收服务器返回的 JSON 数据:

var xhr = new XMLHttpRequest();
xhr.open('GET', '/get_data?classID=D615', true);
xhr.onload = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var response = JSON.parse(xhr.responseText);
        var score_data = response.score;
        var teacher_data = response.teacher;
        console.log(score_data); // 输出 {"姓名":"张三","语文":89,"数学":88}
        console.log(teacher_data); // 输出 {"班主任姓名":"李四"}
    }
};
xhr.send();

在上面的代码中,XMLHttpRequest 对象首先发送一个 GET 请求到 /get_data?classID=D615,然后在接收到服务器返回的响应后,使用 JSON.parse 函数将 JSON 字符串解析成 JavaScript 对象,并将其输出到控制台。由于服务器返回的是一个包含两个 JSON 字符串的 JSON 对象,因此可以通过 response.scoreresponse.teacher 来分别获取这两个 JSON 对象。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^