mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Redesigned register_output_renderer plugin hook, closes #581
This commit is contained in:
parent
446e5de65d
commit
52c4387c7d
8 changed files with 202 additions and 20 deletions
42
tests/plugins/register_output_renderer.py
Normal file
42
tests/plugins/register_output_renderer.py
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
from datasette import hookimpl
|
||||
import json
|
||||
|
||||
|
||||
def render_test_all_parameters(
|
||||
datasette, columns, rows, sql, query_name, database, table, request, view_name, data
|
||||
):
|
||||
headers = {}
|
||||
for custom_header in request.args.getlist("header") or []:
|
||||
key, value = custom_header.split(":")
|
||||
headers[key] = value
|
||||
return {
|
||||
"body": json.dumps(
|
||||
{
|
||||
"datasette": datasette,
|
||||
"columns": columns,
|
||||
"rows": rows,
|
||||
"sql": sql,
|
||||
"query_name": query_name,
|
||||
"database": database,
|
||||
"table": table,
|
||||
"request": request,
|
||||
"view_name": view_name,
|
||||
},
|
||||
default=repr,
|
||||
),
|
||||
"content_type": request.args.get("content_type", "text/plain"),
|
||||
"status_code": int(request.args.get("status_code", 200)),
|
||||
"headers": headers,
|
||||
}
|
||||
|
||||
|
||||
def render_test_no_parameters():
|
||||
return {"body": "Hello"}
|
||||
|
||||
|
||||
@hookimpl
|
||||
def register_output_renderer(datasette):
|
||||
return [
|
||||
{"extension": "testall", "render": render_test_all_parameters},
|
||||
{"extension": "testnone", "callback": render_test_no_parameters},
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue