Skip to main content

Tools for dealing with SQLite3 and jsonform

Project description

-- coding: utf-8 --

SQLshite

🗄💩 A terrible SQLite Web UI

Not ready for general consumption, right now only browsing/viewing SQLite3 databases/tables is supported (and then barely).

Aim is a simple UI, that works on mobile for quick search. Focused on single table work, rather than fk/pk relationship display.

Primary aim:

Getting Started

From a source code checkout

python -m pip install -r requirements.txt
# TODO requirements_optional.txt
#python -m pip install -e .

Usage

python -m sqlshite.web.wsgi
python -m sqlshite.web.wsgi config.json

Where config.json contains:

{
	"databases": {
		"memory": ":memory:",
		"mydb": "mydb.sqlite3"
	}
}

Then open:

Design

URLs

That have been implemented

http://localhost/ - browse databases
http://localhost/d - browse databases

http://localhost/d/DATABASE_NAME - browse tables
http://localhost/d/DATABASE_NAME/sql - issue SQL queries

http://localhost/d/DATABASE_NAME/TABLE_NAME?q=SEARCH_TERM - quick search the first string column with automatic (pre and post) wild card

http://localhost/d/DATABASE_NAME/TABLE_NAME/jsonform.json - schema in jsonform - format
http://localhost/d/DATABASE_NAME/TABLE_NAME/rows - view (TODO cleanup and maybe edit for desktop view) rows in table
http://localhost/d/DATABASE_NAME/TABLE_NAME/add - add TODO actually INSERT into table
http://localhost/d/DATABASE_NAME/TABLE_NAME/rowid - currently dumps schema and value
http://localhost/d/DATABASE_NAME/TABLE_NAME/view/rowid - view
http://localhost/d/DATABASE_NAME/TABLE_NAME/view/rowid/view.json - jsonform with schema and data only

URLs TODO / TBD

http://localhost/d/DATABASE_NAME/TABLE_NAME - browse table (rows)?

TBD

http://localhost/d/DATABASE_NAME/TABLE_NAME/schema.json - schema in jsonform - format

http://localhost/d/DATABASE_NAME/TABLE_NAME?rowid=A - view? where rowid is sqlite specific rowid?

Where PRIMARY_KEY is not rowid (but it could be...)
http://localhost/d/DATABASE_NAME/TABLE_NAME/PRIMARY_KEY - edit/view?
http://localhost/d/DATABASE_NAME/TABLE_NAME/row/PRIMARY_KEY - view?
http://localhost/d/DATABASE_NAME/TABLE_NAME/view/PRIMARY_KEY - view?

http://localhost/d/DATABASE_NAME/TABLE_NAME/edit/PRIMARY_KEY - edit existing?

need to use hidden field for PK (compound pk?) in case pk is updated. Potentially use readonly (especially for view) http://localhost/d/DATABASE_NAME/TABLE_NAME/edit/PRIMARY_KEY/jsonform.json - schema+data in jsonform - format with data

Questions

  • Datatype support. date/datetime
  • how to handle add and edit errors, to avoid data loss:
    • from database
    • network?
    • temp store in local storeage until get confirmation back?

Datatypes

SQL             Python
TIMESTAMP       DateTime
bool/boolean    bool
varchar         string
string          string
int             integer
real            float

TODO consider Decimal support. TODO consider datetime as a mapping.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SQLshite-0.0.0.dev2.tar.gz (192.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page