Djangoのインタラクティブシェルを使う【python3 manage.py shell】
Djangoに含まれているライブラリを普通のPythonのインタラクティブシェルで動かそうとしても、manage.py
の環境変数やsettings.py
が無ければ動かない。
だから、Django関係のライブラリを試しに動かしたい時は、
python3 manage.py shell
とする。
用途
Djangoに含まれるライブラリの動作検証
例えば、django.utils.timezoneなどはPythonのインタラクティブシェルでは動作しない。予め
python3 manage.py shell
を実行した上で、timezoneをimportする必要がある。
from django.utils import timezone
timezone.now()
この時、settings.py
のUSE_TZ
が参照される。
DBへデータ挿入
Django公式のチュートリアルではシェルを使って、直接DBへデータを挿入している。
https://docs.djangoproject.com/ja/3.2/intro/tutorial02/#playing-with-the-api
とはいえ、こんなことをしなくてもDBにデータを挿入する方法なら他にもある。
例えば、admin.pyにて、モデルを登録して管理サイトからデータを挿入するとか、予めjsonで作っておいたデータをリストアするとか。