DjangoでiPython/ Jupyter notebookを使う方法

Djangojupyter notebookを使う方法

こんばんは、エンジニアの眠れない夜です。

Djangoの開発中にPythonのスクリプトを書きたいことがありますよね?

そんな時に便利なのがiPython/ Jupyter notebookです。普段から利用している人も多いと思います。

DjangoでiPython/ Jupyter notebookを利用するためには初期設定が必要です。

ここではDjangoでiPython/ Jupyter notebookを使う方法をご紹介します。

jupyter notebookとDjangoの使い方

 

iPython/ Jupyter notebookをDjangoで使うための初期設定

まずは django-extensions をインストールします。

ドキュメントはこちら→django-extensions ドキュメント

[code]pip install django-extensions[/code]

Djangoの settingsに ‘django-extensions’を加えます。

[code]INSTALLED_APPS += [‘django_extensions’][/code]

iPython/ Jupyter notebookを起動するにはDjangoのプロジェクトのホームディレクトリで下記を実行するとiPython/ Jupyter notebookが起動します。

[code]python manage.py shell_plus –notebook[/code]

iPython/ Jupyter notebookが起動したら一番初めに下記のコードをコピーアンドペーストして実行します。MYPROJECT にはプロジェクトのホームディレクトリを指定してください。

Python

MYPROJECT = '/path/to/my_project'
import os, sys
sys.path.insert(0, MYPROJECT)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "local_settings.py")
import django
django.setup()

from app.models import Foobar
Foobar.objects.all()

Djangoのモデルを使いたいときはviews.pyなどでモデルを読み込むのと同じ要領でインポートします。

from アプリ名.models import モデル名

これでDjangoのモデルなどを活用してスクリプトを書くことができますね^^

 

追記

後日違うプロジェクトで上記の方法でうまくいかない事があったの追記します。

そして、下記の4行で十分ということが分かりました。



Python

import os,django
import website.settings #追加
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "website.settings")#変更
django.setup()

websiteの部分は使用中のプロジェクト名に置き換えてください。settingsファイルをローカルと本番環境で使い分けたいときは local_settings などを作成して、そちらを指定してください。

ポイント

3行目で指定するsettingsのファイルをインポートしていないことが原因で、「そんなモジュールありません」とエラーが出ます。

それを2行目でsettingsをインポートしてあげれば解決!

 

たったこれだけのことです!

これでもう同じところではつまづきませんね^^

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.