Skip to main content

A Jupyter notebook with access to objects from the Django ORM is a powerful tool to introspect data and run ad-hoc queries.

Project description

dj-notebook

A Jupyter notebook with access to objects from the Django ORM is a powerful tool to introspect data and run ad-hoc queries. This works with modern Django and Python 3.9, 3.10, and 3.11.

Features

  • Easy ipython notebooks with Django
  • Built-in integration with the imported objects from django-extensions
  • Inheritance diagrams on any object, including ORM models
  • Converts any Django QuerySet to Pandas Dataframe
  • Handy function for displaying mermaid charts in

Installation

Use your installation tool of choice, here we use venv and pip:

python -m venv venv
source venv/bin/activate
pip install dj_notebook

Usage

First, find your project's manage.py file and open it. Copy whatever is being set to DJANGO_SETTINGS_MODULE into your clipboard.

Create an ipython notebook in the same directory as manage.py. In VSCode, simply add a new .ipynb file. If using Jupyter Lab, use the File -> New -> Notebook menu option.

Then in the first cell enter:

from dj_notebook import activate

plus = activate("DJANGO_SETTINGS_MODULE_VALUE")

In future cells, you can now load and run Django objects, including the ORM. This three line snippet should give an idea of what you can now do:

from django.contrib.auth import get_user_model
User = get_user_model()
User.objects.all()

Usage Plus

But wait, it gets better!

When you activated the Django environment, you instantiated a variable called 'plus'. The 'plus' variable is an object that contains everything loaded from django-extensions' shell_plus. Here's a demonstration, try running this snippet:

plus.User.objects.all()

We also provide a utility for introspection of classes, which can be useful in sophisticated project architectures. Running this code in a Jupyter notebook shell:

plus.diagram(plus.User)

Generates this image

QuerySet to Dataframe

plus.read_frame(plus.User.objects.all())

Check out the official documentation for more things you can do!

dj-notebook official documentation

Contributors

pydanny
Daniel Roy Greenfeld
skyforest
Cody Antunez
anna-zhydko
Anna Zhydko
bloodearnest
Simon Davy
akashverma0786
Null
DaveParr
Dave Parr
syyong
Siew-Yit Yong

Pair programmers

Being a co-author of a commit doesn't show up in the contributor list above, so the following is for anyone who has paired on a commit and deserves credit.

evieclutton
Null

Special thanks to Tom Preston

Tom Preston did seminal work on Python paths that later became the foundation of dj-notebook.

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

dj_notebook-0.4.0.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

dj_notebook-0.4.0-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file dj_notebook-0.4.0.tar.gz.

File metadata

  • Download URL: dj_notebook-0.4.0.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for dj_notebook-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c9fd67661f32a8d6c677fee761fc75f0a9726c9fa17bac41a3b0e8db113def48
MD5 cf0cee18d807f8cad6f2956c93ab57c1
BLAKE2b-256 02ca7132e936ec20d6209ab506f2a14b5846d34a174c3be9e2b3bbf22f93548c

See more details on using hashes here.

File details

Details for the file dj_notebook-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: dj_notebook-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for dj_notebook-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9fb8191be58f3f4153232c4de9e62ae5d200e7e05879ffbc78c57f6bf26e588
MD5 a3cbfce15bb4af07de098caadaa01107
BLAKE2b-256 a25164659bd69788727886eddea0c79375721838ac8f5fdde6a035581ed78ca7

See more details on using hashes here.

Supported by

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