There are no reviews yet. Be the first to send feedback to the community and the maintainers!
djng ==== (pronounced "djing", with a mostly-silent "d") Blog entry: http://simonwillison.net/2009/May/19/djng/ Mailing list: http://groups.google.com/group/djng djng is a micro-framework that depends on a macro-framework (Django). My definition of a micro-framework: something that lets you create an entire Python web application in a single module: import djng def index(request): return djng.Response('Hello, world') if __name__ == '__main__': djng.serve(index, '0.0.0.0', 8888) Or if you want hello and goodbye URLs, and a custom 404 page: import djng app = djng.ErrorWrapper( djng.Router( (r'^hello$', lambda request: djng.Response('Hello, world')), (r'^goodbye$', lambda request: djng.Response('Goodbye, world')), ), custom_404 = lambda request: djng.Response('404 error', status=404), custom_500 = lambda request: djng.Response('500 error', status=500) ) if __name__ == '__main__': djng.serve(app, '0.0.0.0', 8888) Under the hood, djng will re-use large amounts of functionality from Django, while re-imagining various aspects of the framework. A djng request object is a Django HttpRequest object; a djng response object is a Django HttpResponse. Django's template language and ORM will be available. Ideally, Django code will run almost entirely unmodified under djng, and vice versa. Services, not Settings ====================== I dislike Django's settings.py file - I often find I want to reconfigure settings at run-time, and I'm not comfortable with having arbitrary settings for so many different aspects of the framework. djng experiments with /services/ in place of settings. Services are bits of shared functionality that djng makes available to applications - for example, caching, templating, ORM-ing and mail-sending. Most of the stuff that Django sets up in settings.py will in djng be set up by configuring services. These services will be designed to be reconfigured at run-time, using a mechanism similar to Django middleware. Some things that live in settings.py that really don't belong there - middleware for example. These will generally be constructed by composing together a djng application in code. I'm still figuring out how the syntax for services should work.
datasette
An open source multi-tool for exploring and publishing datasqlite-utils
Python CLI utility and library for manipulating SQLite databasesshot-scraper
A command-line utility for taking automated screenshots of websitescsvs-to-sqlite
Convert CSV files into a SQLite databasetil
Today I Learneddjango-sql-dashboard
Django app for building dashboards using raw SQL queriessimonw
https://simonwillison.net/2020/Jul/10/self-updating-profile-readme/llm
Access large language models from the command-linedb-to-sqlite
CLI tool for exporting tables or queries from any SQL database to a SQLite filedjangode
Utilities functions for node.js that borrow some useful concepts from Djangocsv-diff
Python CLI tool and library for diffing CSV and JSON filesdatasette-lite
Datasette running in your browser using WebAssembly and Pyodideshot-scraper-template
Template repository for setting up shot-scrapergeocoders
Ultra simple API for geocoding a single string against various web services.ca-fires-history
Tracking fire data from www.fire.ca.govdjango-openid
A modern library for integrating OpenID with Django - incomplete, but really nearly there (promise)openai-to-sqlite
Save OpenAI API results to a SQLite databaseaction-transcription
A tool for creating a repository of transcribed videoss3-credentials
A tool for creating credentials for accessing S3 bucketsgit-history
Tools for analyzing Git history using SQLitegoogle-drive-to-sqlite
Create a SQLite database containing metadata from Google Drivedjango-queryset-transform
Experimental .transform(fn) method for Django QuerySets, for clever lazily evaluated optimisations.ratelimitcache
A memcached backed rate limiting decorator for Django.optfunc
Syntactic sugar for creating Python command line scripts by introspecting a function definitioncougar-or-not
An API for identifying cougars v.s. bobcats v.s. other USA cat speciessimonwillisonblog
The source code behind my blogadvent-of-code-2022-in-rust
Copilot-assisted Advent of Code 2022 to learn Rustdjangopeople.net
A geographical community site for Django developers.scrape-chatgpt-plugin-prompts
s3-ocr
Tools for running OCR against files stored in S3datasette-app
The Datasette macOS applicationdjango-redis-monitor
Request per second / SQLop per second monitoring for Django, using Redis for storagepython-lib
Opinionated cookiecutter template for creating a new Python libraryttok
Count and truncate text based on tokensmytweets
Script for saving a JSON archive of your tweets.airtable-export
Export Airtable data to YAML, JSON or SQLite files on diskdatasette-graphql
Datasette plugin providing an automatic GraphQL API for your SQLite databasesllm-mlc
LLM plugin for running models using MLCstrip-tags
CLI tool for stripping tags from HTMLdjango_cropper
Integration of jCrop with the Django adminclick-app
Cookiecutter template for creating new Click command-line toolsdatasette-ripgrep
Web interface for searching your code using ripgrep, built as a Datasette plugindownload-esm
Download ESM modules from npm and jsdelivrdatasette.io
The official project website for Datasetteftfy-web
Paste in some broken unicode text and FTFY will tell you how to fix it!markdown-to-sqlite
CLI tool for loading markdown files into a SQLite databasesqlite-history
Track changes to SQLite tables using triggersyaml-to-sqlite
Utility for converting YAML files to SQLitesqlite-diffable
Tools for dumping/loading a SQLite database to diffable directory structurecovid-19-datasette
Deploys a Datasette instance of COVID-19 data from Johns Hopkins CSSE and the New York Timesdogproxy
Experimental HTTP proxy (using node.js) for avoiding the dog pile effect.soupselect
CSS selector support for BeautifulSoup.laion-aesthetic-datasette
Use Datasette to explore LAION improved_aesthetics_6plus training data used by Stable DIffusiondatasette-cluster-map
Datasette plugin that shows a map for any data with latitude/longitude columnsaction-transcription-demo
A tool for creating a repository of transcribed videosdatasette-vega
Datasette plugin for visualizing data using Vegapge-outages-pre-2024
Tracking PG&E outagesgoogle-calendar-to-sqlite
Create a SQLite database containing your data from Google Calendarurl-map
Use URL parameters to generate a map with markers, using Leaflet and OpenStreetMapdisaster-scrapers
Scrapers for disaster data - writes to https://github.com/simonw/disaster-datadjp
A plugin system for Djangogeojson-to-sqlite
CLI tool for converting GeoJSON files to SQLite (with SpatiaLite)asgi-csrf
ASGI middleware for protecting against CSRF attacksdatasette-chatgpt-plugin
A Datasette plugin that turns a Datasette instance into a ChatGPT pluginnodecast
A simple comet broadcast server, originally implemented as a demo for Full Frontal 2009.bugle_project
Group collaboration tools for hackers in forts.django-html
A way of rendering django.forms widgets that differentiates between HTML and XHTML.datasette-auth-github
Datasette plugin that authenticates users against GitHubpuppeteer-screenshot
Vercel app for taking screenshots of web pages using Puppeteerllm-replicate
LLM plugin for models hosted on Replicatepython-lib-template-repository
GitHub template repository for creating new Python libraries, using the simonw/python-lib cookiecutter templatedjango-signed
Signing utilities for Django, to try out an API which is being proposed for inclusion in Django core.museums
A website recommending niche museums to visitpypi-rename
Cookiecutter template for creating renamed PyPI packageshelp-scraper
Record a history of --help for various commandsdbf-to-sqlite
CLI tool for converting DBF files (dBase, FoxPro etc) to SQLitedisaster-data
Data scraped by https://github.com/simonw/disaster-scrapersasyncinject
Run async workflows using pytest-fixtures-style dependency injectiondatasette-publish-vercel
Datasette plugin for publishing data using Vercelgzthermal-web
A web interface to gzthermal by caveman on encode.ruasgi-auth-github
ASGI middleware that authenticates users against GitHubjson-head
JSON microservice for performing HEAD requestsdjango-safeform
CSRF protection for Django forms.s3-image-proxy
A tiny proxy for serving and resizing images fetched from a private S3 bucketsqlite-transform
Tool for running transformations on columns in a SQLite databasewebhook-relay
A simple Node.js server for queueing and relaying webhook requestsdatasette-tiddlywiki
Run TiddlyWiki in Datasette and save Tiddlers to a SQLite databaseimage-diff
CLI tool for comparing imagesgetlatlon.com
Source code for getlatlon.com - a simple, single page, pure JavaScript Google Maps application.sf-tree-history
Tracking the history of trees in San Franciscoscrape-hacker-news-by-domain
Scrape HN to track links from specific domainstimezones-api
A Datasette-powered API for finding the time zone for a latitude/longitude pointowlsnearme
A website that tells you where your nearest owls are!datasette-table
A Web Component for embedding a Datasette table on a pagexml-analyser
Simple command line tool for quickly analysing the structure of an arbitrary XML fileshapefile-to-sqlite
Load shapefiles into a SQLite (optionally SpatiaLite) databasecdc-vaccination-history
A git scraper recording the CDC's Covid Data Tracker numbers on number of vaccinations per state.json-flatten
Python functions for flattening a JSON object to a single dictionary of pairs, and unflattening that dictionary back to a JSON objectdatasette-json-html
Datasette plugin for rendering HTML based on JSON valuesdjangocon-2022-productivity
Supporting links for my DjangoCon 2022 talkLove Open Source and this site? Check out how you can help us