การติดตั้ง และเรียกใช้ Django Model บน Jupyter Notebook

หลังจากที่เราเรียน การติดตั้ง VirtualEnv สำหรับการแยก Python Environment และติดตั้ง Jupyter Lab กันไปแล้ว วันนี้เรามาลองปรับแต่ง หรือลงโมดูลให้ กับ Django App ของเรา ให้มีความสามารถในการติดต่อ (Shell) บน Jupyter Notebook กันได้นะครับ

Django คืออะไร?

Django เป็น Web framework สำหรับสาย Python ครับ ผมเลือกใช้เพราะมีหน้า Admin และ มี ORM (Object Relation Mapping) ให้ใช้ ทำให้เราสามารถทำอะไรได้สะดวก รวดเร็วมากขึ้นครับ แต่ในบทความนี้เรายังไม่พูดถึงนะครับ ใครสนใจไปอ่าน หรือทำตามจาก https://www.djangoproject.com ได้เลยครับ

เริ่มติดตั้งกันดีกว่า

mkvirtualenv django
pip install pandas django jupyter
pip install django-extensions django-pandas jupyter

หลังจากที่เรา Initial ตัว Django app ไปแล้วให้เพิ่มบรรทัดนี้ในไฟล์ settings.py ครับ

INSTALLED_APPS = [
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'django_extensions',
]

หลังจากนั้นรันคำสั่งข้างล่าง จะได้ Jupyter Notebook ขึ้นมา เราสามารถกด Django Shell-Plus ได้เลยครับ ซึ่งใน Application ลักษณะนี้ ผมจะใช้แค่ Jupyter Notebook ก็พอ ไม่ต้องเป็น Jupyter Lab ก็ได้ครับ

เริ่มต้นใช้งาน shell_plus

python manage.py shell_plus --notebook

เข้าถึง Django Model

หลังจากนั้น เรามาลองเข้าถึง User Model ของ django กันเลยครับ!

#!/usr/bin/env python
# coding: utf-8
import os
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
from django.contrib.auth.models import User
from blog.models import Post

Post.objects.all()
User.objects.all()

Jupyter Notebook

รันใน Notebook จะได้แบบนี้ครับ!

เห็นมั้ยครับ เพียงเท่านี้เราก็จะสามารถ ติดต่อกับ Django Model ผ่าน Notebook ได้เลย…
ซึ่งแน่นอนครับ หลังจากนี้เราจะมาพูดถึง Django Model และ Pandas + Django + Jupyter Notebook กันต่อไปนะครับ

Happy Coding!

Leave a Comment