Skip to main content

Django ORM playground — dev-only web UI for ORM queries

Project description

DORM

A Django ORM playground — a dev-only web UI to run ORM queries against your connected database.

Install

pip install dorm-plg

Setup

# settings.py
INSTALLED_APPS = [..., "django_htmx", "dorm"]
MIDDLEWARE = [..., "django_htmx.middleware.HtmxMiddleware"]
# urls.py
from django.urls import path, include
from dorm import get_url_prefix

urlpatterns = [
    ...
    path(f"{get_url_prefix()}/", include("dorm.urls", namespace="dorm")),
]

Open /__dorm__/ in your browser and start writing ORM queries.

Warning: DORM executes arbitrary Python code in your Django process. It is gated behind DEBUG=True and must never be used in production.

Settings

Setting Type Default Description
DORM_AUTH_ACCESS bool False When True, requires the user to be authenticated even in DEBUG mode
DORM_URL_NAME str "__dorm__" URL prefix where DORM is mounted (used by get_url_prefix())

Access rules

DEBUG DORM_AUTH_ACCESS Authenticated Result
False any any 404
True False / unset any 200
True True yes 200
True True no 404

Example with both settings:

# settings.py
DORM_AUTH_ACCESS = True   # require login
DORM_URL_NAME = "dorm"    # mount at /dorm/

Usage

In the playground editor, write any Django ORM expression. All models from your INSTALLED_APPS are available without importing them:

# Get all users
User.objects.all()

# Filter with related fields
Book.objects.filter(author__name="Tolkien").select_related("author")

# Aggregations
from django.db.models import Count
Author.objects.annotate(book_count=Count("books")).order_by("-book_count")

Press Ctrl+Enter or click Run to execute. Results are rendered as a table.

Development

git clone https://github.com/almamydev/DORM
cd DORM
python3.10 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cd sandbox && python manage.py migrate && python manage.py runserver
# Open: http://127.0.0.1:8000/__dorm__/

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

dorm_plg-0.1.1.1.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dorm_plg-0.1.1.1-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file dorm_plg-0.1.1.1.tar.gz.

File metadata

  • Download URL: dorm_plg-0.1.1.1.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for dorm_plg-0.1.1.1.tar.gz
Algorithm Hash digest
SHA256 49be0372e2471377cd8548e65d92aaadd7e064feeee72042fa79cf74ba03aace
MD5 85eebd76761f513255ae74d50b93ecab
BLAKE2b-256 fda00e25b51348daca6c57001b29f035b303d329143ce826d67ebbf399ebea1b

See more details on using hashes here.

File details

Details for the file dorm_plg-0.1.1.1-py3-none-any.whl.

File metadata

  • Download URL: dorm_plg-0.1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for dorm_plg-0.1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e77605b7e33032ca14ea9b0ce6a570f13ba582b087269d1a184a9b2f1e7e510f
MD5 72cd4717ddbdb47c54304e2e6eb83584
BLAKE2b-256 68bbb06dc123fd247a32a91ad7da7d4183d5ca8e99ff774686bd2f812b69fd85

See more details on using hashes here.

Supported by

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