Tips

Python入門 Djangoの使い方(その14)PythonシェルでDBを操作する。
2017.06.30

Python入門 Djangoの使い方(その14)PythonシェルでDBを操作する。

Python入門 Djangoの使い方(その14)PythonシェルでDBを操作する。

はじめに

不定期連載のPython入門第28回目です。今回もPythonのWebフレームワーク「Django」を使っていきましょう。PythonのWebフレームワークといえばFlaskやPyramidなどもありますが、最も使われているのはDjangoです。

Djangoではコマンドラインで操作できるAPIを提供してくれています。
簡単なデータの操作はこのAPIを利用することで実現できます。
今回はその機能を使ってみたいと思います。

※参考:本家チュートリアル

今回の内容:

  • シェルAPIを利用してデータを参照する。
  • シェルAPIを利用してデータを追加する。
  • シェルAPIを利用してデータを更新する。
  • シェルAPIを利用してデータを削除する。

前提条件:

  • Pythonバージョン:Python3
  • Djangoバージョン:Django1.10.5
  • 実行環境:Windows8
  • ツール:VisualStudioCommunity2015

シェルAPIを利用してデータを参照する。

まず、DjangoシェルAPI操作をするためには以下のコマンドを叩きます。

python manage.py shell

Pythonシェルが起動し、「>>>」のマークが出てきます。
まずはmyApp1のmodels下にあるSectionクラスをimportしておきましょう。

from myApp1.models import Section

以下のメソッドを実行してみます。

Section.objects.all()

「<QuerySet [<Section: システム部>, <Section: 営業部>, <Section: 総務部>]>」
のように出てきました。
myApp1_sectionテーブルに格納されているレコードがオブジェクトとなって取得できています。

次にUserをimportしましょう。

from myApp1.models import User

Section同様、以下のメソッドを実行してみます。

User.objects.all()

「<QuerySet []>」のように表示されました。
これはまだUserが登録されていないからです。

シェルAPIを利用してデータを登録する。

ではUserを登録してみましょう。

u = User(section=Section.objects.get(pk=1),name='taro',age=22,address='tokyo')
u.save()

saveメソッドで保存が完了します。再び一覧を見てみましょう。

User.objects.all()
<QuerySet [<User: taro>]>

Userが登録されています。
管理画面でも確認してみましょう。

ユーザ一覧にtaroが登録されていることが分かります。

シェルAPIを利用してデータを更新する。

では登録したユーザ情報を編集してみましょう。

まずは登録したユーザオブジェクトを取得します。

u = User.objects.get(name='taro')

名前がtaroになっていることを確認しておきます。

u.name
'taro'

名前をjiroに変更します。

u.name ='jiro'
u.name
'jiro'

保存します。

u.save()

再び一覧を見てみると、名前がjiroになっています。

User.objects.all()
<QuerySet [<User: jiro>]>

管理画面でも確認してみましょう。

jiroに更新できていました。

シェルAPIを利用してデータを削除する。

では最後に削除をしてみましょう。

削除したいユーザオブジェクトを取得します。

u = User.objects.get(name='jiro')

deleteメソッドで削除します。

u.delete()

削除されていることが分かります。

User.objects.all()
<QuerySet []>

まとめ

今回はPythonシェルAPIを使ってみました。
簡単にデータ操作ができることが分かりました。

新連載はじまりました!独学で学ぶPython基礎 連載リンク

独学で学ぶ-Pythonプログラミング 連載

Recent News

Recent Tips

Tag Search