手把手程式實作分享系列:Django SQLite資料庫設定集簡單操作

手把手教你簡單設定Django SQLite資料庫

Walter Chiu
Bandai的機器學習筆記
7 min readAug 18, 2019

--

1. 先把你的Django架構設定好

還不知道怎麼開始的人可以看看下面這一篇:

手把手程式實作分享系列:Django初體驗

2. 資料庫教學 Models

Model : 定義一些資料庫的東西 ( ORM ),這層通常是直接和資料有關。

我們在這邊也寫的是如何定義出資料庫中的結構(schema),並且透過 Django 中的指令去建立資料庫。

Django 預設是使用 SQLite ,如果想要修改為其他的資料庫,可以在 settings.py 裡面進行修改。之後再來一篇firebase的。

首先,請先在 models.py 裡面增加下方程式碼 (下圖)

default : 代表默認值,也就是如果你沒有指定的話會用默認值。

auto_now_add : 新增時會幚你自動加上建立時間。

auto_now : 資料有更新時會幚你自動加上更新的時間。

更多可以參考 Django fields

接著在命令提示字元 (cmd ) 底下輸入

python manage.py makemigrations

python manage.py migrate

makemigrations : 會幚你建立一個檔案,去記錄你更新了哪些東西。

migrate : 根據 makemigrations 建立的檔案,去更新你的 DATABASE 。

執行完上面的指令之後,

你可以使用SQLiteBrowserPyCharm 觀看 DATABASE,

你會發現多出一個 music 的 table ( 如下圖 )

  • *如果這邊沒有表生出來 表示你可能忘記把你的app放入setting的 INSTALLED_APPS裡面拉** 這邊自己要注意唷!

有沒有注意到我們明明在 models.py 裡面就沒有輸入 id ,可是 database 裡面卻有 id 欄位,

這是因為 Django 預設會幫你帶入,所以可以不用設定。

Admin Site

Django 內建有後台管理介面。

請先確定 settings.py 裡的 INSTALLED_APPS 裡有 django.contrib.admin

設定 URL

接著使用命令提示字元 (cmd ) 建立超級使用者

python manage.py createsuperuser

註冊 model

我們可以註冊 model,讓後台可以操作 database

請在 admin.py 裡面新增下方程式碼,這段程式碼只是去註冊 model 而已

Django ORM

資料庫設定好了,接下來我們要來玩玩資料庫了

以上的東西全部做完之後,這邊才能夠開始做以下操作。

先了解什麼是 CRUD ,他分別代表 Create, Retrieve, Update, Delete,

Django QuerySet API 可以讓你簡單的處理 CRUD 。

直接使用 Python Console 簡單介紹 Django ORM

在view.py 做以下操作的時候,記得必須先 import 你的 models

from musics.models import Music

Create

創造一個新的資料

Music.objects.create(song=’song1', singer=’SKE48')

SQLiteBrowserPyCharm 觀看 DATABASE,如下圖,成功多了一比資料

或者

Music.objects.create()

為什麼沒帶參數也可以新增呢?

這是因為 models.py 裡的 song 以及 singer 有設定 default ,所以可以不用帶入參數。

Read

一次把資料全部讀進來

Music.objects.all()

Music.objects.get(pk=3)

Music.objects.filter(id=1)

使用的時候objects.all()是回傳回一個list

data=Music.objects.all()

如果我們要單獨的項目,可以這樣操作

for i in range(len(data1)):
print(data[i].singer)

讓所有在Music裡面的singer資訊全部印出來。

Update

data=Music.objects.filter(id=1)

data.update(song=’song_update’)

執行完上述程式碼,就會發現資料被更新了 ( 如下圖 )

Delete

data=Music.objects.filter(id=4)

data.delete()

執行完上述程式碼,就會發現資料被刪除了

參考資料:https://github.com/twtrubiks/django-tutorial

--

--

Walter Chiu
Bandai的機器學習筆記

台大電機博士候選人,主要學習電腦科學、資訊教育,關心各種時事議題,歡迎一起討論有趣的專題 dodo0095@hotmail.com