简介
Datasette 是 Simon Willison 开源的工具,把任何 SQLite 数据库瞬间变成可浏览的 web UI + 完整 JSON API。分面筛选、全文检索、插件渲染、一行命令发布到 Vercel / Fly.io / Cloud Run。适合开放数据发布、内部数据探索、新闻调查、任何「CSV 表」打败「手搓 dashboard」的场景。兼容任何 SQLite 文件(或通过 sqlite-utils 从 CSV 导入)。装机时间 2 分钟。
安装 + 跑
pip install datasette
datasette serve fixtures.db --host 0.0.0.0 --port 8001
# 打开 http://localhost:8001发布到云
# Vercel
datasette publish vercel fixtures.db --project=my-data
# Fly.io
datasette publish fly fixtures.db --app=my-data
# Cloud Run
datasette publish cloudrun fixtures.db --service=my-data每张表自带 JSON API
curl http://localhost:8001/fixtures/products.json | jq '.rows[0]'
# 筛选、排序、搜索:
curl 'http://localhost:8001/fixtures/products.json?category=Electronics&_sort_desc=price&_size=20'
# 全文检索:
curl 'http://localhost:8001/fixtures/products.json?_search=laptop'常用插件
| 插件 | 增加什么 |
|---|---|
datasette-vega |
查询结果直出图表 |
datasette-auth-github |
GitHub OAuth 鉴权 |
datasette-block-robots |
robots.txt 屏蔽 |
datasette-render-images |
blob 列内联图片预览 |
datasette-search-all |
跨表搜索 |
为啥 Simon 的工具链有影响力
Datasette 在 GitHub 上 9,700+ 星,支撑政府和新闻机构的公开数据门户,是 simonwillison.net 引用次数仅次于 LLM CLI 的工具。
FAQ
Q: 能处理 Postgres,不只是 SQLite 吗?
A: 不能直接 —— Datasette 设计上 SQLite 优先。Postgres 用 db-to-sqlite 镜像子集,或用 datasette-postgres 插件做只读视图。Simon 的立场:95% 的数据发布场景 SQLite 够了。
Q: 跟 Streamlit / Metabase 区别? A: Datasette 默认只读、不写 JS、每行/筛选自动生成干净 URL(分享神器)。Streamlit 是 Python app 建造器;Metabase 是自托管 BI。需求只是「让我把这表分享出去」时 Datasette 最贴。
Q: 插件还是完全自定义 UI? A: 都行。插件通过文档化 API 扩展渲染、鉴权、查询类型。要更深定制 Datasette 自带可覆盖的 Jinja 模板系统。大多数团队内置 UI + 2-3 个插件就够。