Datasette插件,用于从模板执行SQL查询
项目描述
datasette-template-sql
Datasette插件,用于从模板执行SQL查询。
示例
www.niche-museums.com 使用此插件在Datasette之上运行自定义主题网站。网站的完整源代码在此 - 另请参阅niche-museums.com,由Datasette提供支持。
simonw/til 是另一个简单示例,请参阅使用GitHub Actions驱动的自重写README来跟踪TILs。
安装
运行此命令以在Datasette相同环境中安装插件
$ pip install datasette-template-sql
用法
此插件使您的Datasette模板可用一个新的函数,sql(sql_query)
。
您可以使用它如下
{% for row in sql("select 1 + 1 as two, 2 * 4 as eight") %}
{% for key in row.keys() %}
{{ key }}: {{ row[key] }}<br>
{% endfor %}
{% endfor %}
插件将对当前数据库执行SQL查询,适用于database.html
、table.html
和row.html
模板。如果模板没有当前数据库(例如index.html
),则查询将针对第一个附加的数据库执行。
带参数的查询
您可以通过传递列表或字典作为第二个参数,使用?
或:name
参数语法构建SQL查询
{% for row in sql("select distinct topic from til order by topic") %}
<h2>{{ row.topic }}</h2>
<ul>
{% for til in sql("select * from til where topic = ?", [row.topic]) %}
<li><a href="{{ til.url }}">{{ til.title }}</a> - {{ til.created[:10] }}</li>
{% endfor %}
</ul>
{% endfor %}
以下是使用:topic
风格参数的相同示例
{% for row in sql("select distinct topic from til order by topic") %}
<h2>{{ row.topic }}</h2>
<ul>
{% for til in sql("select * from til where topic = :topic", {"topic": row.topic}) %}
<li><a href="{{ til.url }}">{{ til.title }}</a> - {{ til.created[:10] }}</li>
{% endfor %}
</ul>
{% endfor %}
查询不同数据库
您可以通过传递可选的database=
参数来指定用于查询的命名数据库。例如,如果您附加了news.db
数据库,可以使用此参数
{% for article in sql(
"select headline, date, summary from articles order by date desc limit 5",
database="news"
) %}
<h3>{{ article.headline }}</h2>
<p class="date">{{ article.date }}</p>
<p>{{ article.summary }}</p>
{% endfor %}
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码发行版
datasette-template-sql-1.0.2.tar.gz (3.1 kB 查看哈希值)
构建发行版
关闭
哈希值 for datasette_template_sql-1.0.2-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 194514201e8ce3489040e89a7887d8144bf27fd32580649a904be31de2cd0752 |
|
MD5 | a15725eac86cf1bef43401a52bf9f7e5 |
|
BLAKE2b-256 | 703a80703eb171f8294dbf77c5777b0fa644370e9c5b53cd8f9e5722cf4cacfb |