datasette-write by simonw

69 downloads this week        Star

README source code

datasette-write

PyPI Changelog Tests License

Datasette plugin providing a UI for writing to a database

Installation

Install this plugin in the same environment as Datasette.

pip install datasette-write

Usage

Having installed the plugin, visit /-/write on your Datasette instance to submit SQL queries that will be executed against a write connection to the specified database.

By default only the root user can access the page - so you'll need to run Datasette with the --root option and click on the link shown in the terminal to sign in and access the page.

The datasette-write permission governs access. You can use permission plugins such as datasette-permissions-sql to grant additional access to the write interface.

Pass ?sql=... in the query string to pre-populate the SQL editor with a query. Pass ?database=... to specify a database to run the query against.

Parameterized queries

SQL queries can include parameters like this:

insert into news (title, body)
    values (:title, :body_textarea)

These will be converted into form fields on the /-/write page.

If a parameter name ends with _textarea it will be rendered as a multi-line textarea instead of a text input.

Development

To set up this plugin locally, first checkout the code. Then create a new virtual environment:

cd datasette-write
python3 -mvenv venv
source venv/bin/activate

Or if you are using pipenv:

pipenv shell

Now install the dependencies and tests:

pip install -e '.[test]'

To run the tests:

pytest