[Django]shellからではなくスクリプトからデータベースを操作する

django

Djangoではmanage.py shellからデータベースを操作できます。

でもshellからではなく、スクリプトを書いてデータベースを操作したいと思った時の資料が多くなかったので備忘録を兼ねてメモ。

背景

やりたかったこと

スクレイピングで取得した情報をDjangoのデータベースに登録→Djangoアプリケーションで表示させる

 

つまづいたこと

PythonでSQLite3を操作するスクリプトを書きましたが、なんだかDjangoのデータベースにうまく接続できない。

Djangoのチュートリアルではshellを使って簡単にデータベースを操作できたのになぁ

 

コード紹介

Django本体のコードはDjangogilrsチュートリアルをベースにしています。

今回はmanage.pyがある同じ階層に以下のコードを書きました。

import sys
import os
import django


sys.path.append("mysite")
os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings")

django.setup()


from blog.models import Post

print('connect ok')
Post.objects.create(title='Sample title', url='Test')

from blog.models import PostをDjango.setup()の下に書いていますが、1番上のimport群に書くとエラーが返ってきます。

あとはチュートリアルにあるようにshellコマンドで入力したものをそのまま書くだけでCRUD操作ができます。



カテゴリー