CSV 导出¶
任何 Datasette 表、视图或自定义 SQL 查询都可以导出为 CSV。
要获取您正在查看的表的 CSV 表示,请单击“此数据为 CSV”链接。
您还可以使用高级导出表单来更精细地控制生成的文件,该表单如下所示并具有以下选项

下载文件 - 这会强制浏览器将 CSV 下载到您的下载目录,而不是在浏览器中显示 CSV。
展开标签 - 如果您的表有任何外键引用,此选项将导致 CSV 增加额外的
COLUMN_NAME_label
列,其中包含从链接表中派生的每个外键的标签。在此示例中,city_id
列伴随着一个city_id_label
列。流式传输所有行 - 默认情况下,CSV 文件仅包含前 max_returned_rows 条记录。此选项将导致 Datasette 循环遍历所有匹配的记录并将它们作为单个 CSV 文件返回。
您可以在 https://latest.datasette.io/fixtures/facetable?_size=4 上尝试。
URL 参数¶
以下选项可用于自定义 Datasette 返回的 CSV。
?_header=off
这会删除指定标题的 CSV 文件的第一行 - 只会返回行数据。
?_stream=on
流式传输所有匹配的记录,而不仅仅是第一页结果。参见下文。
?_dl=on
使 Datasette 返回一个
content-disposition: attachment; filename="filename.csv"
头。
流式传输所有记录¶
流式传输所有行 选项旨在尽可能高效 - 在底层,它利用 Python 3 asyncio 功能和 Datasette 高效的 分页 来流式传输完整的 CSV 文件。
由于数据库可能相当大,默认情况下此选项限制为 100MB - 如果表返回的数据超过 100MB,CSV 的最后一行将是截断错误消息。
您可以使用 max_csv_mb 配置设置来增加或移除此限制。您还可以使用 allow_csv_stream 完全禁用 CSV 导出功能。