前回、作成した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')
>>>import os
しておいて、
1.画面をクリアしたくなったら
>>>os.system('cls')
2.カレントディレクトリを知りたくなったら
>>>os.system('cd')
3.ファイル一覧を見たくなったら
>>>os.system('dir')
#1 : データの投入方法(1)
コマンドライン
|
解説
|
|
<=Albumの内容の確認
<= nothing is in there.
== データの投入開始==
呼び方はどちらでも良い。
|
#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()
|
|
#3: データの投入内容確認
コマンドライン
|
解説
|
>>>Album.objects.all()
<QuerySet [<Album: Album object (1)>, <Album: Album 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できる。# 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)
*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 件のコメント:
コメントを投稿