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:
- no security - did you pay attention to the name of this project?
- Simple SQL queries (TODO determine transaction model - autocommit is the current plan)
- view/edit record, using jsonschema / jsonforms (unlike above where transaction model is unclear, autocommit on save)
- https://www.google.com/search?q=jsonform
- TODO research Python libs
- https://github.com/jsonform/jsonform/ - Bootstrap 3
- https://github.com/eclipsesource/jsonforms - React, Angular and/or Vue
- view records, using https://github.com/olifolkerd/tabulator
- inputFor at array - https://tabulator.info/docs/5.5/data#import-data
- quick search, with add (either on no match or no good match) using search term as initial value
- searching either a defined column, the first column, or all columns
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file SQLshite-0.0.0.dev2.tar.gz
.
File metadata
- Download URL: SQLshite-0.0.0.dev2.tar.gz
- Upload date:
- Size: 192.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/44.1.1 requests-toolbelt/1.0.0 tqdm/4.64.1 CPython/2.7.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcd7667b372f47891656e470441be6968168e0f82af608e070dd80a57036cd43 |
|
MD5 | 31faf7e563f990cf8763eaab5b7400ea |
|
BLAKE2b-256 | 37838cab9467930c9c844ad58d226384001ea53df53a02c397d1f28715ff7ff5 |