今天我发现了APSW (另一个 Python SQLite 包装器,自 2024 年以来不断开发) apsw.ext.query_info()函数,它接受 SQL 查询并返回有关该查询的一组非常详细的信息 – 所有这些都无需执行它。
它实际上解决了我想要在 Datasette 中解决的一系列问题 – 比如进行任意查询并计算出它需要多少个参数( ?
)以及结果中表示哪些表和列。
我在我的控制台中尝试了它( uv run --with apsw python
),它似乎工作得很好。然后我想起 Pyodide 项目包含许多 Python C 扩展的 WebAssembly 构建,并且很高兴在该列表中找到 apsw 。
…所以我让 Claude为我构建了一个 Web 界面来尝试该功能,使用 Pyodide 通过 WebAssembly 在浏览器中以 Python 运行用户的查询。
Claude 并没有一次性完全理解它 – 我必须将 URL 提供给它最新的 Pyodide,它陷入了错误循环,我通过将代码粘贴到新会话中来修复该错误循环。
标签: pyodide 、 sqlite 、 claude 、 ai 、 llms 、 claude-artifacts 、 webassemble 、人工智能辅助编程、 python 、生成人工智能、 apsw
原文: https://simonwillison.net/2025/Feb/7/apsw-sqlite-query-explainer/#atom-everything