Django SQL Explorer

5.3 · active · verified Fri Apr 17

Django SQL Explorer provides a delightful SQL editor and interface for writing and sharing SQL queries directly within a Django admin-like environment. It allows users to quickly generate reports, download data, and visualize results, with recent versions (like 5.3) adding AI assistance for query generation. It is actively maintained, with new releases often coinciding with major Django version compatibility updates.

Common errors

Warnings

Install

Imports

Quickstart

To set up Django SQL Explorer, first ensure you have Django installed. Then, install `django-sql-explorer` via pip. Add `'explorer'` to your `INSTALLED_APPS` in `settings.py` and include `explorer.urls` in your project's `urls.py`. Run `python manage.py migrate` to create Explorer's database tables. Access is typically restricted to staff or superusers by default. Navigate to `/explorer/` after running the development server and log in with an appropriate user.

import os

# settings.py
# Minimum settings for django-sql-explorer

DEBUG = True

SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'a-very-secret-key-for-dev')

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'explorer', # Add explorer app
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'myproject.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'myproject.wsgi.application'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(os.getcwd(), 'db.sqlite3'),
    }
}

AUTH_PASSWORD_VALIDATORS = [
    {'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator'},
    {'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator'},
    {'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator'},
    {'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator'},
]

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True

STATIC_URL = '/static/'

# explorer specific settings (optional, defaults to is_staff checks)
EXPLORER_PERMISSION_VIEW = lambda request: request.user.is_staff
EXPLORER_PERMISSION_CHANGE = lambda request: request.user.is_superuser

# myproject/urls.py
# from django.contrib import admin
# from django.urls import include, path
# 
# urlpatterns = [
#     path('admin/', admin.site.urls),
#     path('explorer/', include('explorer.urls')), # Add explorer URLs
# ]

# To run:
# 1. pip install django django-sql-explorer
# 2. Create a Django project and app (e.g., 'myproject')
# 3. Replace myproject/settings.py and myproject/urls.py with the relevant parts above
# 4. python manage.py migrate
# 5. python manage.py createsuperuser
# 6. python manage.py runserver
# 7. Navigate to http://127.0.0.1:8000/explorer/ and log in with your superuser account.

view raw JSON →