mogoz

Datasette

tags
sqlite , SQL , Data Visualization , Data Engineering , Geography

FAQ

SQL injection?

The ecosystem

Datasetteexternal link is built on top of sqlite , a tool for exploring and publishing data. Eg. You can create a website/API out of your data. It can be combined with other tools and extended with plugins.

Distributions

These are different ways datasette is distributed, in a way these also fall under what we consider “tools” under datasette ecosystem.

  • Datasette: Python web application, CLI, Server, (can be deployed)
  • Datasette Lite : In the browser (Runs datasette in pyodide in a web worker , see WebAssembly ). Uses datasette-clientexternal link .
    • “So each time the user clicks a link in the parent window, that URL is sent to the web worker where Datasette generates the full HTML of the page just as if it was running as a regular server-side application.”
    • “The web worker sends that HTML (and the status code and content-type) back to the parent window, which injects it into the page using innerHTML.”
  • Datasette Desktop: macOS desktop application (Electron), uses datasette-app-supportexternal link and python-build-standaloneexternal link

Official Tools(46)

These can be run independently but also has useful usecases when used with datasette. See Datasette Toolsexternal link .

  • <source>-to-sqlite : The primary idea is that, we somehow dump the data into sqlite and then we can easily explore the data using datasette. Source can be anything. There are ~20 such official tools. You can ofcourse build your own.
  • other tools: These are tools that usually can be considered utilities, some of these are related to datasette, some are related to sqlite , some may not be related to any but indirectly can be useful etc. Following are some picked tools that I think are useful to me currently.

Official Plugins(136)

Plugins extend Datasette with new functionality, Data Visualization , Authentication , more data processing , other post/pre processing/debugging stuff. You can build your ownexternal link . Following are some picked plugins that I think are useful to me currently. Some(sqlite-X) of these plugins directly work as sqlite extensions aswell, asg017 maintains a logexternal link of these. Datasette uses pluggyexternal link for this.

See https://datasette.io/content/plugins?_facet=tags

  • Query Enhancements
    • datasette-saved-queries
    • datasette-query-history
    • datasette-template-sql
    • datasette-search-all
    • datasette-leaflet-freedrawexternal link : query a database by drawing shapes on a map
    • datasette-write / datasette-write-ui
  • Render enhance
  • Other Enhancements
  • Interop
    • datasette-export-notebook : exporting data to Jupyter or Observable
  • Debugging
    • datasette-show-errors
    • datasette-edit-templates
    • datasette-psutil
    • datasette-pyinstrument
    • datasette-total-page-time
  • Security/Performance/Infra
    • datasette-cors
    • datasette-init
    • datasette-rure / sqlite-regex
    • datasette-gzip
    • datasette-backup
    • datasette-hashed-urls
    • datasette-sqlite-fts4
    • datasette-publish-fly
    • datasette-block-robots
    • datasette-configure-fts
    • datasette-scale-to-zero
  • Geo
    • datasette-tiles: serving MBTiles map tiles
    • datasette-cluster-map
    • datasette-leaflet
    • datasette-basemap
    • datasette-placekey
    • datasette-haversine
    • sqlite-colorbrewer
    • sqlite-tg / datasette-sqlite-tgexternal link (as an alternative to spatialite at times)
  • Viz
    • datasette-vega : (demo seems to be facing CORS issues currently)
    • datasette-nteract-data-explorer

Resources