iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
自我挑戰組

30天建構出一個簡單 LineBot 機器人系列 第 15

DAY 15 Django資料庫使用(上篇)

  • 分享至 

  • xImage
  •  

網站通常會搭配後端存取帳戶資料等的資料庫使用,Django預設為以Model方式使用資料庫,也就是以class類別建立Model,再透過Model使用資料庫與資料表,也是MTV架構中的Model。

使用 Django 資料庫

使用 Django 資料庫的步驟如下:

  1. 在<model.py>檔案中定義class類別,每個類別為一個資料表
  2. 在class類別中定義變數,變數為資料表欄位
  3. 以「python manage.py makemigrations」建立資料庫與Django間的中介檔
  4. 以「python manage.py migrate」同步更新資料庫的內容
  5. 在Python中存取資料庫內容

定義資料類型

  • 由於django.conf.urls.url()在 Django 3.0 中已棄用,並在 Django 4.0+ 中刪除。所以將程式碼第三行「django.conf.urls import url」改寫為「from django.urls import include, re_path」
  • <setting.py>的設定參照前幾篇文章所介紹

<urls.py>

from django.contrib import admin
from django.urls import path
from django.urls import include, re_path
from test4api import views

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^listone/$',views.listone),
    re_path(r'^listall/$',views.listall),
]

建立資料模型

這裡以登錄學生資料為範例練習

<models.py>:return self.cName 表示顯示cName欄位

class student(models.Model):
        cName = models.CharField(max_length=20, null=False)
        cSex = models.CharField(max_length=2, default='M', null=False)
        cBirthday = models.DateField(null=False)
        cEmail = models.EmailField(max_length=100, blank=True, default='')
        cPhone = models.CharField(max_length=50, blank=True, default='')
        cAddr = models.CharField(max_length=255, blank=True, default='')

        def __str__(self):
            return self.cName

models.Model常用欄位格式

  • BooleanFied:True或False,用於checkboox資料
  • CharField:用於單行輸入文字
  • DateField:日期型別格式;auto_now為物件儲存時自動取得目前時間
  • DateTimeField:日期時間型別格式
  • EmailField:電子郵件資料格式
  • FloatField:包含小數點的資料格式
  • IntegerField:整數的資料格式
  • TextField:多行輸入文字,用於textarea資料

models.Model常用欄位屬性

  • null:欄位是否可為null值,預設為False
  • blank:欄位可為空白內容,預設為False
  • max_length:設定字串最大長度
  • choices:設定select選項
  • default:設定欄位預設值
  • editable:設定欄位是否可顯示,預設為True
  • primary_key:設定欄位是否為主鍵,預設為False
  • unique:設定欄位是否為唯一值,預設為False

建立資料檔與同步資料庫

若有修改<model.py>檔案就必須執行

  1. 建立資料表版本與架構
python manage.py makemigrations
  1. 模型與資料庫同步
python manage.py migrate


admin後台管理

以register方式建立student資料模型向admin註冊

<admin.py>

from django.contrib import admin
from test4api.models import student

admin.site.register(student)

建立管理者帳號與密碼
必須先建立管理者帳號與密碼,於「命令提示字元」中輸入下列指令,並依序設定使用者名稱、電子信箱以及密碼

這邊要特別注意密碼的設定原則:

  1. 密碼須至少使用8個字元。
  2. 密碼不過普通 (如123456)。
  3. 密碼不可只包含數字。
  4. 密碼不可與使用者名稱和電子信箱太相近。
python manage.py createsuperuser

設定完成的畫面

設定完成後,輸入「python manage.py runserver」開啟伺服器「127.0.0.1:8000/admin/」網址,輸入剛剛設定的使用者帳號密碼登入,進入Django管理頁面幾可看到剛剛完成的students資料表

新增資料表資料
點新增按鈕,輸入資料後按儲存鈕即可

資料儲存後新增的資料會以cName欄位顯示,是因為在<models.py>中的return設定。
第一筆資料已新增完成,繼續新增幾筆資料以便接下來的練習~~

總共新增四筆的畫面

Django管理頁面的初步介紹告一個段落,下篇介紹資料庫的CRUD指令(❁´◡`❁)


上一篇
DAY 14 利用 Vercel 完成 Liff 部署
下一篇
DAY 16 Django資料庫使用(下篇)
系列文
30天建構出一個簡單 LineBot 機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言