二进制数据¶
SQLite 表可以在 BLOB
列中包含二进制数据。
Datasette 包含对这些二进制值的特殊处理。Datasette 界面会检测二进制值,并提供下载其内容的链接,例如在 https://latest.datasette.io/fixtures/binary_data。

二进制数据在 .json
导出中使用 Base64 编码表示。
https://latest.datasette.io/fixtures/binary_data.json?_shape=array
[
{
"rowid": 1,
"data": {
"$base64": true,
"encoded": "FRwCx60F/g=="
}
},
{
"rowid": 2,
"data": {
"$base64": true,
"encoded": "FRwDx60F/g=="
}
},
{
"rowid": 3,
"data": null
}
]
链接到二进制下载¶
.blob
输出格式用于返回二进制数据。它需要一个 _blob_column=
查询字符串参数来指定应下载哪个 BLOB 列,例如
https://latest.datasette.io/fixtures/binary_data/1.blob?_blob_column=data
此输出格式也可用于从任意 SQL 查询返回二进制数据。由于此类查询不指定确切的行,因此可以使用附加的 ?_blob_hash=
参数来指定所链接值的 SHA-256 哈希值。
考虑查询 select data from binary_data
- 在此处演示。
该页面链接到二进制值的下载。这些链接如下所示:
这些 .blob
链接也会在 Datasette 为二进制表和查询提供的 .csv
导出中返回,因为 CSV 格式没有表示二进制数据的机制。
二进制插件¶
有几个 Datasette 插件可以改变 Datasette 处理二进制数据的方式。
datasette-render-binary 修改了 Datasette 的默认界面,以自动猜测正在存储的二进制数据类型,并提供二进制值的可视化表示,该表示直接在界面中显示 ASCII 字符串。
datasette-render-images 检测常见的图像格式,并将它们直接在 Datasette 界面中渲染为图像。
datasette-media 允许配置 Datasette 界面,以便从配置的 SQL 查询中提供二进制文件,并包括在提供图像之前直接调整图像大小的功能。