Django Debugging Shell menggunakan Jupyter Notebook

Mahrus Khomaini
NgalamBackend
Published in
3 min readFeb 23, 2020
Django and Jupyter
Source: iconscout.com/icon/django-2 and commons.wikimedia.org/wiki/File:Jupyter_logo.svg

Django merupakan free and open source python web framework yang sangat populer, baik untuk membuat website dengan skala kecil maupun skala besar. Contohnya: Instagram, Pinterest, Udemy, Sentry dan masih banyak lainnya, semuanya dibangun menggunakan Django.

Django menyediakan sebuah fitur interaktif yakni django shell, dimana kita dapat melakukan aktivitas live coding menggunakan semua apa yang ada pada django. Biasanya digunakan developer untuk melakukan sebuah code experiment tertentu, ataupun hanya sekedar memastikan logic code sebelum kemudian di implementasikan pada kode project yang sebenarnya. Kita dapat menggunakan fitur django shell dengan perintah:

python manage.py shell

Jupyter Notebook ?

Merupakan aplikasi open source berbasis web yang memungkinkan kita untuk membuat dan membagikan dokumen berupa live code, equations, maupun narative texts.

Get Started !

  1. Pastikan telah mengaktifkan virtual environment. Contoh menggunakan Linux Mint OS:
source env-folder/bin/activate

2. Kemudian install menggunakan pip :

pip install jupyter
pip install ipython
pip install django-extensions

atau dijadikan satu baris pun juga bisa:

pip install jupyter ipython django-extensions

3. Setelah berhasil install, kemudian tambahkan django-extensions pada file settings.py dalam list INSTALLED APP :

INSTALLED_APP = [
...
'django_extensions',
]

5. Jalankan jupyter notebook dengan perintah:

python manage.py shell_plus --notebook

6. Secara otomatis akan terbuka di web browser default, dan menampilkan root project Django.

Root Project Django dengan Jupyter Notebook
Root Project Django dengan Jupyter Notebook

7. Buat file jupyter notebook: Django Shell-Plus maka otomatis terbuka tab browser baru dan live jupyter notebook, file disimpan dengan extensi .ipynb di root project.

8. Kita bisa import semua yang ada pada project, termasuk Django maupun library lainnya. Tekan Shift + Enter untuk mengeksekusi kode pada setiap cell nya.

Testing Django menggunakan Jupyter Notebook
Testing Django menggunakan Jupyter Notebook

9. Jika mengubah kode pada project, maka perlu restart kernel untuk mendapatkan live kode terbaru. Lebih lengkapnya bisa membaca di dokumentasi resminya. Done !

Django Shell >< Jupyter Notebook

1. Django Shell

Kelebihan:

  • Merupakan fitur yang disediakan langsung oleh Django, sehingga tidak memerlukan library tambahan lainnya.
  • Tentunya lebih cepat, karena tidak menggunakan library tambahan.

Kekurangan:

  • Jika kode panjang, maka akan kesulitan membaca dan melakukan perubahan.
  • Kode tidak dapat disimpan secara otomatis.
  • Ketika ada perubahan kode di project maka harus keluar dari shell, kemudian masuk lagi untuk mendapatkan perubahan terbaru, sehingga kode dalam shell yang sebelumnya hilang dan perlu menuliskan ulang.

2. Jupyter Notebook

Kelebihan:

  • Kode disimpan secara otomatis dalam sebuah file. Sehingga ketika melakukan code experiment, maka dapat dijadikan sebagai dokumentasi atau untuk digunakan di lain waktu.
  • Jika kode panjang, maka dapat terbaca dengan baik dan mudah untuk melakukan perubahan di tengah-tengah kode.
  • Ketika melakukan perubahan kode pada project, cukup dengan restart kernel maka akan mendapatkan update kode terbaru, dan code expertiment pun tidak akan hilang.

Kekurangan:

  • Merupakan library tambahan dan bukan bawaan dari Django, sehingga perlu meng-install secara terpisah.
  • Kurang direkomendasikan jika kode yang ditulis pendek atau cukup sederhana, baiknya menggunakan django shell biasa.

Happy hacking !!!

Reference:

[1] Django web framework

[2] django-extensions documentation

[4] IPython

[5] Jupyter

--

--