☆☆ 新着記事 ☆☆

2018年5月27日日曜日

Django (9) (10) Database API を操作してみる。


前回、作成した2つのデータベースを操作してみます。


今回は、powershellから操作します。

*プロジェクト全体のDirectoryから、DjangoのデータベースのAPI Shellを呼び出します。


1. データの投入

> python manage.py shell

*注)
" >python shell " は、一般のpythonのシェルを呼び出しますが、" >python manage.py shell " とすることで 直接データベースを操作できるようになります。


 
 
 

このシェルを通して、前回で作成した以下のような2つのテーブルを操作していきます。





*Powershell インタラクティブモードの豆知識
Pythonをインタラクティブモードで使用してコードの動作確認をしている時、
>>>import os
しておいて、
1.画面をクリアしたくなったら
>>>os.system('cls')
2.カレントディレクトリを知りたくなったら
>>>
os.system('cd')
3.ファイル一覧を見たくなったら
>>>os.system('dir')


#1 : データの投入方法(1)

 


コマンドライン

解説

>>> from music.models import Album, Song
>>> Album.objects.all()
[ ]
 
 
 
>>>a = Album(artist='Taylor Swift', album_title='red', genre="Country", album_logo="[任意のURL]")
 
>>>a.save()
 
>>>a.artist
'Taylor Swift'
>>> a.album_title
'Red'
 
>>> a.id
1
>>> a.pk
1
 
 

<= modelsのインポート 
<=Albumの内容の確認

<= nothing is in there.

 

== データの投入開始==

 
<=変数(a)を設定し、属性の投入
 
<= 実行で、memoryに記憶される。
 
<=セーブ登録
 
内容の確認
 
 
 
 
自動付与されたID(プライマリ・キー)の確認
呼び方はどちらでも良い。
 


 





#2 : データの投入方法(2)



コマンドライン

解説

>>>b = Album()
>>>b.artist = "Maroon5"
>>>b.album_title = "Cake by the Ocean"
>>>b.genre = "POP"
>>>b.album_logo = ("[任意のURL]")
>>>b.save()
 
>>>b.album_title = " Red Pill"
>>>b.save()

 

 <=変数(b)を設定し、属性の投入
 
 
 
 
 
 
<=データの上書き変更









#3: データの投入内容確認



コマンドライン

解説

>>>Album.objects.all()

<QuerySet [<Album: Album object (1)>, <Album: Album object (2)>]>
 

 <- Objectの内容確認

<- Objectが2個含まれていることを確認。




#2 : データのObject確認内容を改善する
 
オブジェクトが2個ある、という内容だけでは、役に立たないので、
Album.objects.all() で、オブジェクト内容の確認がされた際に、
項目が何か?などが確認できるように改善する。

APPL(music)フォルダ内の "models.py" を修正する。

from django.db import models
# Create your models here.
class Album(models.Model):
    artist = models.CharField(max_length=250)
    album_title = models.CharField(max_length=500)
    genre = models.CharField(max_length=100)
    album_logo = models.CharField(max_length=1000)

    def __str__(self):  #ダンダーストリングと呼ばれる記述の追加

                                  #strの前後はダブル・アンダースコア
  return self.album_title + " - " + self.artist

class Song(models.Model):
    album = models.ForeignKey(Album,on_delete=models.CASCADE)
    file_type = models.CharField(max_length=10)
    song_title = models.CharField(max_length=250)
  
*ダンダーとは、Double Underの略。 この場合、Objectのstr情報をrepresentできる。

 *models内でDBの構造の変更をしたら、DBへの構成変更を反映するプロセスをするが
 今回のようなものは、これに該当しない。 従って、powershellを再度、立ち上げて、
 music.modelsからmoduleのimportをしてあげるだけでよい。

結果、


 

オブジェクトを確認する、その他の方法






(参考)
Django Tutorial for Beginners - 9 - Database API
https://youtu.be/uYTiPwEGKyQ

Django Tutorial for Beginners - 10 - Filtering Database Results
https://youtu.be/GalTlEsOBdo

0 件のコメント:

コメントを投稿