datasette-write by simonw
README source code
Datasette plugin providing a UI for writing to a database
Install this plugin in the same environment as Datasette.
pip install datasette-writeHaving installed the plugin, visit /db/-/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.
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 /db/-/write page.
If a parameter name ends with _textarea it will be rendered as a multi-line textarea instead of a text input.
If a parameter name ends with _hidden it will be rendered as a hidden input.
On Datasette 1.0a13 and higher a row actions menu item will be added to the row page linking to a SQL query for updating that row, for users with the datasette-write permission.
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/activateOr if you are using pipenv:
pipenv shellNow install the dependencies and tests:
pip install -e '.[test]'To run the tests:
pytest