datasette 1.0a27
摘要
Datasette 1.0a27 发布,主要包含重大安全改进(现代化 CSRF 标头)、新增 RenameTableEvent 以增强插件兼容性,以及多项 API 增强,包括改进的 upsert 处理和数据库锁定修复。
暂无内容
查看缓存全文
缓存时间: 2026/04/20 08:27
# 发布:datasette 1.0a27
来源:https://simonwillison.net/2026/Apr/15/datasette/
发布 datasette 1.0a27(https://github.com/simonw/datasette/releases/tag/1.0a27)—— 一个用于探索和发布数据的开源多工具
此次新 Datasette Alpha 版本包含两项重大变更。我在昨天的文章中详细介绍了第一项(https://simonwillison.net/2026/Apr/14/replace-token-based-csrf/)—— Datasette 不再使用 Django 风格的 CSRF 表单令牌,而是采用 Filippo Valsorda 所述的现代浏览器头部方案(https://words.filippo.io/csrf)。
第二项重大变更是:当在 SQLite 事务中重命名表时,Datasette 现在会触发一个新的 `RenameTableEvent` 事件(https://docs.datasette.io/en/latest/events.html#datasette.events.RenameTableEvent)。这之所以重要,是因为某些插件(例如 datasette-comments(https://github.com/datasette/datasette-comments))会按名称将附加数据关联到表记录,因此表的重命名需要它们以适当方式做出反应。
以下是该 Alpha 版本的其他变更:
> - 为 `datasette.client` 方法新增 `actor=` 参数(https://docs.datasette.io/en/latest/internals.html#internals-datasette-client-actor),允许以指定参与者的身份发起内部请求。这对于编写自动化测试尤其有用。(#2688(https://github.com/simonw/datasette/pull/2688))
> - 新增 `Database(is_temp_disk=True)` 选项,内部数据库使用该选项。这有助于解决因内部数据库采用内存模式而非磁盘模式导致的间歇性数据库锁定错误。(#2683(https://github.com/simonw/datasette/issues/2683))(#2684(https://github.com/simonw/datasette/pull/2684))
> - `///-/upsert` API(文档:https://docs.datasette.io/en/latest/json_api.html#tableupsertview)现在会拒绝包含 `null` 主键值的行。(#1936(https://github.com/simonw/datasette/issues/1936))
> - 改进了 API 浏览器中 `/-/upsert` 端点的示例(文档:https://docs.datasette.io/en/latest/json_api.html#tableupsertview)。(#1936(https://github.com/simonw/datasette/issues/1936))
> - `/.json` 端点现在包含 `"ok": true` 键,以与其他 JSON API 响应保持一致。
> - `call_with_supported_arguments()`(https://docs.datasette.io/en/latest/internals.html#internals-utils-call-with-supported-arguments)现在被记录为支持的公共 API。(#2678(https://github.com/simonw/datasette/pull/2678))
相似文章
datasette 1.0a29
Datasette 1.0a29 已发布,包含新的实用方法、对空表格的 UI 改进,以及在 Codex CLI 协助下修复的竞争条件等错误修复。
datasette 1.0a28
Datasette 1.0a28 alpha 版本修复了前一个 alpha 版本中发现的兼容性错误和资源管理问题,包括修复 execute_write_fn() 回调、数据库清理方法,以及新增用于测试中自动清理的 pytest 插件。
datasette 1.0a38
Datasette 1.0a38 修复了一个 SQL 注入漏洞,该漏洞影响同时提供公共和私有表的实例,该修复也已移植到 Datasette 0.65.3。
datasette 1.0a35
Datasette 1.0a35 Alpha 版本引入了新的创建表格界面和修改表格 JSON API,以及稳定的模板上下文文档。
datasette 1.0a31
Datasette 1.0a31 引入了为具有适当权限的用户执行写入查询和保存存储查询(原称预设查询)的功能,从而增强了数据编辑能力。