使用的是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字符串?
python服务器如何通过一个get请求返回多个值?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- Leodong. 2023-04-13 20:47关注
该回答通过自己思路及引用到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 两张表中对应的内容,并将查询结果分别赋值为sc
和nm
。最后,使用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.score
和response.teacher
来分别获取这两个 JSON 对象。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 准备学习小程序搭建,谁能手把手的教我啊?
- ¥15 关于#嵌入式硬件#的问题:树莓派第一天重装配置python和opencv后第二天打开就成这样,瞎捣鼓搞出来文件夹还是没把原来的界面调回来
- ¥20 Arduino 循迹小车程序电路出错故障求解
- ¥20 Arduino 循迹小车程序电路出错故障求解
- ¥100 AT89C52单片机C语言调试之后再回答
- ¥15 AT89C52单片机C语言串口助手发送数据包返回值
- ¥15 C++数组中找第二小的数字程序纠错
- ¥50 MATLAB APP 制作出现问题
- ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
- ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)