javascript - 通过 JS 访问单个 SQLAlchemy 对象
问题描述
我正在尝试通过使用 on change 根据 select2 字段中的选择来更新我的大部分站点数据。我遵循了fetch
用于创建包含从数据库中提取的信息的 JSON 文件的教程。虽然,这种情况略有不同,因为我试图访问一个对象以在我的 JS 中使用以更新某些站点 HTML。
我曾尝试使用fetch
来返回该对象,但我发现它返回一个包含有关 URL 的随机数据的数组。
视图.py
@app.route('/selected_room/<int:room_id>')
def selected_room(room_id):
room = Room.query.filter_by(id=room_id).first_or_404()
return room
返回:
body: (...)
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "OK"
type: "basic"
url: "http://127.0.0.1:5000/room/2"
我已经在上面发布了一些代码,但这里是我目前设置的所有内容。
视图.py
@app.route('/selected_room/<int:room_id>')
def selected_room(room_id):
room = Room.query.filter_by(id=room_id).first_or_404()
return room
js
$(document).ready(function(){
$('#rooms').on('change', function() {
var room_id = $(this).val();
fetch('/room/' + room_id).then(function(data) {
// this console.log is me testing to see what data returns
console.log(room_id, data, data.room_id, data.room, data.rooms);
});
});
});
实际上,我正在寻找 .js 的 JS 替代品{{ object.id(etc) }}
。要么我完全离开并且无法做到这一点,要么我只是走错了路。谢谢您的帮助!
解决方案
让我们系统地思考一下。
fetch
记录在MDN中。您似乎使用正确的参数调用它:resource
,它可以是一个 URL,并且没有init
参数(这是可选的)。
它说fetch
返回一个promise,并且promise 解析为一个Response
对象。如果你不熟悉 Promise,你可以Promise
从那里点击链接。如果你是,你就会知道data
参数就是Response
对象。
如果您点击链接查看Response
对象是什么,您会看到它包含诸如headers
、ok
、redirected
等字段。这似乎与您在“返回:”标题下的问题中所写的内容相匹配。所以我假设您列出的返回值是data
对象,如console.log
.
所以问题是:给定一个Response
(变量data
),你如何提取响应的主体?在Response
. 您可以使用data.body
, data.arrayBuffer()
, data.blob()
, data.formData()
,data.json()
或data.text()
,这取决于它是什么类型的响应。我对Python或任何flask都不太了解,我不知道Room
服务器端是什么,所以我不知道响应是什么样的。
推荐阅读
- jenkins - Jenkins Github-plugin 无法创建 webhook
- mysql - TimeStamp CURRENT_TIMESTAMP 显示不正确的时间(提前 2 小时)
- xcode - 如何修复 install_name_tool:无法在 xcode 10.2 中打开文件
- android - 如何更改图像视图的半径模糊
- c# - 如何在 TreeView,wpf 中将组合框添加为 TreeViewItem?
- ionic4 - Ionic4 输入类型号接受验证
- javascript - 由于 CORS 问题,通过浏览器的 JS-IPFS http 客户端失败
- django - django服务器的持续部署
- javascript - pouchDB 同步但限制返回的文档?
- javascript - 合并数组内的 JSON 对象