iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0
Modern Web

Django新手指南系列 第 22

啪!沒了 Model常用參數 & 資料表有關指令 江狗(Django) 鐵人Day22

  • 分享至 

  • xImage
  •  

今天來介紹一下在Model內常用的參數與資料表查詢功能:

公用參數

  • null:允許資料欄位是否為Null,欄位預設為False
  • blank:定義這個欄位是否為空(在HTML表單欄位可不填寫數值一樣),欄位預設為False
  • default:能設定預設值,例如:default="此欄位請填寫班級"
  • primary_key:定義欄位是否為主鍵,後可填寫True或False
  • unique:定義此欄位的唯一值(只要為True,同欄位下的數值不可重複)

資料表查詢指令

在前面範例的程式碼有介紹與使用一些用法了,這裡再整理一下指令參數:

---------------<範例參數>---------------------
變數名稱:Input
資料表名稱:DataBase
---------------<資料表格式>-------------------
班級:class = models.CharField(max_length=10)
姓名:name = models.CharField(max_length=10)
座號:number = models.IntegerField()

---------------<資料表筆數>-------------------
          班級      姓名    座號
        一年三班    王勝利    11
        二年六班    林順立    21
        三年一班    陳聰明    21
        
-----------------<all()>--------------------
#當我們查詢資料表中的所有資料可以使用all().
Input = DataBase.objects.all()
#輸出資料表中所有資料。

----------------<filter()>------------------
#當我們查詢資料表時可以添加filter()回傳符合篩選條件的資料。
Input = DataBase.objects.filter(number = 11)
#輸出座號為11號的那筆資料。

---------------<exclude()>------------------
#或是添加exclude()回傳不符合篩選條件的資料。
Input = DataBase.oblects.exclude(name = "王勝利")
#輸出姓名為王勝利"以外"的資料。

-----------<filter().exclude()>-------------
#filter()跟exclude()能同時作為篩選條件來使用。
Input = DataBase.objects.filter(number = 21).exclude(class = "二年六班")
#輸出座號為21號與班級不包括二年六班的資料。

-----------------<get()>--------------------
#當我們要獲取資料表中的單筆資料可以用get().
Input = DataBase.objects.get(class = "三年一班")
#輸出班級為三年一班的這筆資料。

[注意]get()用法僅能抓取一筆資料時使用,
若超過一筆或資料表中沒有這筆資料會導致Django停止服務(報錯)。

------------------<[:]>---------------------
#另外還有LIMIT與OFFSET的查詢額外功能[:](數字從0開始算)。
Input = DataBase.objects.all()[:1]
#輸出前一筆資料。
Input = DataBase.objects.all()[0:2]
#輸出第一筆~第三筆資料。
Input = DataBase.objects.all()[2]
#輸出第三筆資料。
----------------<order_by>------------------
<order_by>
#將獲取的資料表排序的功能。
Input = DataBase.objects.order_by('number')
#輸出座號以升冪排序(由小到大)。
Input = DataBase.objects.order_by('-number')
#輸出座號以降冪排序(由大到小)。

這些是大部分查詢資料表很常使用到的功能,我也還在涉略這方面的知識學問,
以上就是我所知道的用法都教授給大家啦!
那今天先到這裡,大家掰掰~

圖片來源:啪沒了


上一篇
好吃的北藝中心(?) Model欄位類型介紹(下) 江狗(Django) 鐵人Day21
下一篇
哈士奇(?) 進階查詢-述詞表 江狗(Django) 鐵人Day23
系列文
Django新手指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言