在数据中发现故事

PyPI Changelog Python 3.x License discord mastodon: @datasette

此介绍视频的带注释版本

Datasette 是一款用于探索和发布数据的工具。它帮助人们处理任何形态的数据,进行分析和探索,并将其发布为交互式网站和配套 API。

Datasette 面向数据记者、博物馆策展人、档案管理员、地方政府、科学家、研究人员以及任何希望与世界分享数据的人。它是一个更广泛生态系统的一部分,该生态系统包括 44 种工具153 个插件,致力于使结构化数据处理尽可能高效。

尝试演示,探索世界各地 33,000 个发电厂,然后遵循教程或查看 Datasette 的其他一些实际应用示例

然后阅读如何开始使用 Datasette,订阅每月通讯(约)并考虑报名参加办公时间,以便就该项目进行面对面交流。

新增:Datasette Desktop - 一款 macOS 桌面应用程序,可在您自己的计算机上轻松运行 Datasette!

探索性数据分析

从 CSV、JSON、数据库连接等导入数据。Datasette 会自动显示您数据中的模式,并帮助您与同事分享您的发现。

即时数据发布

datasette publish 让您可以将数据即时发布到 Google Cloud Run、Heroku 或 Vercel 等托管服务提供商。

快速原型开发

在几分钟内为任何数据启动一个 JSON API。使用它来验证您的想法并进行原型开发,而无需构建自定义后端。

最新新闻

2025年2月6日 #

Datasette 1.0a17 是 Datasette 1.0 的最新 alpha 版本,包含过去几个月以来的错误修复和小型功能改进。

2024年10月7日 #

Python 3.13 于今日发布。Datasette 1.0a16 与 Python 3.13 兼容,但 Datasette 0.64.8 不兼容。新的 Datasette 0.65 版本修复了与新版本 Python 的兼容性问题。

2024年8月5日 #

Datasette 1.0a14 包含一些关于插件元数据工作方式的重大变更,在新升级指南中有详细描述。另请参阅本次发布的带注释的发行说明

2024年2月18日 #

Datasette 1.0a10 是一个重点 alpha 版本,更改了 Datasette 处理事务的一些内部细节。内部方法 datasette.execute_write_fn() 现在会将函数封装在数据库事务中,除非您传递 transaction=False

2024年2月16日 #

Datasette 1.0a9 为 JSON API 添加了基本的 alter table 支持,调整了权限的工作方式,并引入了一些新的插件调试实用程序。

2024年2月7日 #

Datasette 1.0a8 引入了几个新的插件钩子、一个 JavaScript 插件系统,并将插件配置从 metadata.yaml 移至 datasette.yaml。在1.0a8 的带注释发行说明中阅读更多关于此版本的信息。

2023年12月1日 #

Datasette Enrichments 是 Datasette 的一个新功能,支持通过对表中的每一选定行运行自定义代码来丰富数据。阅读Datasette Enrichments:一个增强数据的新插件框架了解更多详情,并观看使用 GPT-4 进行地址地理编码和处理文本和图像的丰富功能视频演示。

2023年11月30日 #

datasette-comments 是 Alex Garcia 开发的一个新插件,为 Datasette 添加了协作评论功能。Alex 为 Datasette Cloud 构建了该插件,但它也作为开源软件包提供给那些自行托管 Datasette 实例的人员。请参阅 Datasette Cloud 博客上的使用 datasette-comments 注释和探索您的数据了解更多详情。

2023年8月22日 #

Datasette 1.0a4 修复了 Datasette 1.0 alpha 系列中的一个安全漏洞:API 探索界面暴露了受诸如 datasette-auth-passwords 等插件保护的公共实例中私有数据库和表的名称,但未暴露这些表的实际内容。请参阅安全公告了解更多详情以及无法立即升级的变通方法。最新一期的 Datasette Newsletter 也谈到了这个问题。

2023年8月15日 #

datasette-write-ui: 一个用于编辑、插入和删除行的 Datasette 插件 引入了一个新插件,为 Datasette 添加了添加/编辑/删除功能,由 Alex Garcia 开发。Alex 为 Datasette Cloud 构建了这个插件,这篇文章是新 Datasette Cloud 博客上的第一篇公告 - 另请参阅欢迎来到 Datasette Cloud

2023年8月9日 #

Datasette 1.0a3 是 Datasette 的一个 alpha 版本,预览了将在 1.0 版本中推出的新默认 JSON API 设计 - 这是该 1.0 版本计划中最重要的单一变更。

2023年7月1日 #

新教程:使用 SQLite 和 Python 进行数据分析。本教程最初在 PyCon 2023 上展示,包含一个 2 小时 45 分钟的视频和一个详细的讲义,无论是否观看视频都很有用。涵盖的主题包括 Python 的 sqlite3 模块、sqlite-utils、Datasette、Datasette Lite、高级 SQL 模式等等。

2023年3月24日 #

我构建了一个 ChatGPT 插件来回答关于 Datasette 中托管数据的问题 描述了一个新的实验性 Datasette 插件,使用户能够通过 ChatGPT 查询托管在 Datasette 界面中的数据,提出自然语言问题,这些问题会被自动转换为 SQL 并用于生成可读的响应。

2023年2月23日 #

新教程:在 GitHub Codespaces 中使用 Datasette,展示了如何使用新的 datasette-codespaces 插件,在 GitHub 的免费 Codespaces 基于浏览器的开发环境中运行 Datasette。

2023年1月28日 #

使用 Datasette 构建的站点示例 现在包含了 Datasette 部署的截图,展示了使用 Datasette 及其插件可以解决的各种问题。

所有新闻

最新版本

2025年5月14日

llm 0.26a0 - 用于与 OpenAI、Anthropic 和 Gemini 等组织的大型语言模型以及安装在您自己机器上的本地模型交互的 CLI 工具和 Python 库。

这是第一个引入工具支持的 alpha 版本!具有工具能力的模型(包括默认的 OpenAI 模型系列)现在可以被授予执行 Python 函数的权限,作为响应提示的一部分。

命令行界面支持工具

llm  --functions '
def multiply(x: int, y: int) -> int:
 """Multiply two numbers."""
 return x * y
' 'what is 34234 * 213345'

以及在Python API 中,使用新的 model.chain() 方法按顺序执行多个提示

import llm

def multiply(x: int, y: int) -> int:
  """Multiply two numbers."""
    return x * y

model = llm.get_model("gpt-4.1-mini")
response = model.chain(
    "What is 34234 * 213345?",
    tools=[multiply]
)
print(response.text())

还可以使用register_tools() 插件钩子定义新工具。然后可以像这样从命令行按名称调用它们

llm  -T  multiply  'What is 34234 * 213345?'

工具支持目前正在积极开发中。请查阅此里程碑了解最新状态。

2025年5月13日

datasette-chronicle 0.3 - 在 Datasette 中使用 sqlite-chronicle 处理表格

  • 新的触发器设计,使用 sqlite-chronicle 0.4。#4
  • 现有 chronicle 表会自动升级到新设计,同时保留版本和时间戳数据。
  • 现在在 UI 中使用文本“Enable row version tracking for this table”。#5

2025年5月9日

sqlite-utils 4.0a0 - 用于操作 SQLite 数据库的 CLI 工具和 Python 库

  • Upsert 操作现在在所有版本大于 3.23.1 的 SQLite 上使用 SQLite 的 INSERT ... ON CONFLICT SET 语法。对于依赖先前 INSERT OR IGNORE 后跟 UPDATE 行为的应用程序,这是一个非常细微的重大变更。(#652)
  • Python 库用户可以通过向 Database() 构造函数传递 use_old_upsert=True 来选择使用先前的实现,请参阅使用 INSERT OR IGNORE 的替代 Upsert
  • 放弃了对 Python 3.8 的支持,添加了对 Python 3.13 的支持。(#646)
  • sqlite-utils tui 现在由 sqlite-utils-tui 插件提供。(#648)
  • 测试套件现在也针对 SQLite 3.23.1 运行,这是在新 INSERT ... ON CONFLICT SET 语法添加之前的最后一个版本(发布于 2018-04-10)。(#654)

2025年5月5日

datasette-enrichments 0.5.1 - 用于对存储在 Datasette 中的数据运行丰富功能的工具

  • 修复了在某些环境中服务器启动时关于缺少表的错误。#58

sqlite-diffable 0.6 - 用于将 SQLite 数据库转储/加载到可比较目录结构的工具

  • 新功能:--all --exclude name_of_table 允许您导入所有表,但按名称排除一个或多个。感谢 giuli007。#11
  • setup.py 迁移到 pyproject.toml

llm 0.25 - 用于与 OpenAI、Anthropic 和 Gemini 等组织的 大型语言模型 以及安装在您自己机器上的本地模型交互的 CLI 工具和 Python 库。

  • 新的插件功能:register_fragment_loaders(register) 插件现在可以返回片段和附件的混合。 llm-video-frames 插件是第一个利用此机制的插件。 #972
  • 新的 OpenAI 模型:gpt-4.1gpt-4.1-minigpt-41-nanoo3o4-mini#945#965#976
  • 新的环境变量:LLM_MODELLLM_EMBEDDING_MODEL,用于设置要使用的模型,而无需每次都指定 -m model_id#932
  • 新命令:llm fragments loaders,用于列出插件提供的所有当前可用的片段加载器前缀。 #941
  • llm fragments 命令现在按照片段首次使用的日期排序显示。 #973
  • llm chat 现在包含一个 !edit 命令,用于使用默认终端文本编辑器编辑提示。感谢 Benedikt Willi#969
  • 允许同时使用 -t--system#916
  • 修复了一个错误,通过别名访问模型时会无法尊重为该模型设置的任何默认选项。 #968
  • 改进了 extra-openai-models.yaml 的文档。感谢 Rahim NathwaniDan Guido#950#957
  • llm -c/--continue 现在与 -d/--database 选项正常配合使用。llm chat 现在接受 -d/--database 选项。感谢 Sukhbinder Singh#933

2025年5月1日

datasette-query-assistant 0.1a3 - 通过 AI 助手查询数据库和表格

  • 现在依赖于 LLM 来支持多种模型,而不仅仅是 Anthropic。#13

2025年4月22日

datasette 1.0a19 - 用于探索和发布数据的开源多功能工具

  • 修复了表格行在移动端显示的一个微小的外观错误。 #2479

2025年4月21日

datasette-comments 0.1.1.a2 - 一个用于对 Datasette 中的表格、行和值进行评论的插件

  • 更新插件以兼容最新的 Datasette 1.0 alpha 版本
  • 表格视图评论图标的多项 UI 改进,错误修复

2025年4月17日

datasette-extract 0.1a10 - 将非结构化数据(文本和图像)导入结构化表格

  • 修复了浮点列的错误。#34
  • 现在完全剥离 Unicode null 字符(GPT-4.1-mini 为图像返回了这些字符)。#35

datasette 1.0a18 - 用于探索和发布数据的开源多功能工具

  • 修复了内部数据库模式中外键引用不正确的问题。 #2466
  • prepare_connection() 钩子不再为内部数据库运行。 #2468
  • 修复了 link: HTTP 头使用无效语法的问题。 #2470
  • 不再针对 Python 3.8 进行测试。现在针对 Python 3.13 进行测试。
  • 如果 FTS 表对应于内容表,则默认隐藏。 #2477
  • 修复了数据库文件名包含特殊字符时,外键链接到行的问题。感谢 Jack Stratton#2476

2025年4月16日

datasette-extract 0.1a9 - 将非结构化数据(文本和图像)导入结构化表格

  • 现在依赖于 LLM 并支持任何同时具有 async 和 schema 支持的模型。您还可以使用新的 plugins.datasette-extract.models 配置列表将其限制为模型的子集。 #27

2025年4月11日

llm 0.25a0 - 用于与 OpenAI、Anthropic 和 Gemini 等组织的 大型语言模型 以及安装在您自己机器上的本地模型交互的 CLI 工具和 Python 库。

  • llm models --options 现在显示使用 API 密钥的模型的密钥和环境变量。感谢 Steve Morin#903
  • 添加了 py.typed 标记文件,因此 LLM 现在可以在使用 mypy 的项目中作为依赖项使用而不会出现警告。 #887
  • $ 字符现在可以通过将其转义为 $$ 在模板中使用。感谢 @guspix#904
  • LLM 现在使用 pyproject.toml 而不是 setup.py#908

2025年4月10日

csvs-to-sqlite 1.3.1 - 将 CSV 文件转换为 SQLite 数据库

2025年4月9日

llm 0.24.2 - 用于与 OpenAI、Anthropic 和 Gemini 等组织的 大型语言模型 以及安装在您自己机器上的本地模型交互的 CLI 工具和 Python 库。

  • 修复了 Windows 系统上新的 llm -t path/to/file.yaml 功能的错误。 #901

所有版本