在models.Model中常用的數據字段格式說明
| 字段格式 | 可以使用的參數 | 說明 |
|---|---|---|
| BigIntegerField | 64位的大整數 | |
| BooleanField | 布爾值,只有True和False兩種 | |
| CharField | max_length,min_length; | 指定的接受字符串長度 |
| DateField | auto_now :每次存儲時就自動加入當前日期 auto_now_add: 只有在對象被創建時才加入當前日期(創建日期) |
日期格式,可用於datetime.date |
| DateTimeField | 同上 | 日期格式,對應到datetime.datetime |
| DecimalField | max_digits: 可接受的最大位數 decimal_places: 在所有位數中,小數占幾個位數 |
定點小數數值數據,適用於python中的Decimal模塊實例 |
| EmailField | max_length:最長字數 | 郵件格式的字段 |
| FloatField | 浮點字段 | |
| IntegerField | 整數字段,是通用性最高的整數格式 | |
| PostiveIntegerField | 正整數字段 | |
| SlugField | max_length:最大字符長度 | 和CharField一樣,一般用來做網址的一部分 |
| TextField | 長文字格式,一般用在HTML窗體的Textarea輸入項目中 | |
| UrlField | max_length:最大字符長度 | 和CharField一樣,用於記錄url |
詳細見django文檔的models說明
| 字段選項 | 說明 |
|---|---|
| null | 此字段不允許接受存儲空值NULL,默認值為False |
| blank | 此字段不允許接受存儲空白內容,默認值為False |
| choices | 以選項的方式作為此字段的候選值,(只有固定內容的數據可以使用) |
| default | 輸入此字段的默認值 |
| help_text | 字段的求助信息 |
| primary_key | 把此字段設置為數據表中的主鍵KEY,默認值為False |
| unique | 設置此字段是否為唯一值,默認值為False |
Django ORM常用的函數以及修飾詞
| 函數名稱或修飾詞 | 說明 |
|---|---|
| filter() | 返回符合指定條件的QuerSet |
| exclude() | 返回不符合指定條件的QuerSet |
| order_by() | 串接到QuerSet之后,針對每一指定的字段進行排序 |
| all() | 返回所有的的Querset |
| get() | 獲得指定符合條件的唯一元素,如果找不到或者一個以上符合條件,都會產生exception |
| first()/last() | 獲得第1個元素 / 獲得最后一個元素 |
| aggregate() | 可以用來計算數據項的聚合函數 |
| exists() | 用來檢查是否存在否某指令條件的記錄,通常附加在filter()后面 |
| update() | 用來快速更新某些數據記錄中的字段內容 |
| iexact | 不區分大小寫的條件設置 |
| contains | 設置條件為含有某一字符串就符合,如SQL 語句中的 LIKE |
| icontains | 設置條件為含有某一字符串就符合,如SQL 語句中的 ILIKE |
| in | 提供一個列表,只有符合列表中的任何一個值均可以 |
| gt / gte | 大於 / 大於等於 |
| lt / lte | 小於 / 小於等於 |
一些函數如 reverse() 、exists() 等可以串接在另一些函數后面,用於進一步過濾信息,修飾詞放在參數中,在字段后面加上2個下划線之后再串接,可以為條件設置增加風多的彈性。
Product.objects.filter(num__lt=2)、
Product.objects.all().orber_by('-price')
注意:
xxxx = modeks.ForeigenKey(Xaaa,on_delete=models.CASCADE)
創建表關聯的時候會有一個ForeignKey字段,她負責指向另一張表的主鍵Primary Key,代表這個表格依附於另一張表格。on_delete = models.CASCADE是一個屬性, 若主鍵數據被刪除時,此數據也被刪除。其他常設置的操作如下
- models.PEOTECT:禁止刪除,並產生一個Excption(ProtectedError)
- models.SET_NULL:把外鍵設置為null,但是在規划時此字段要設置為可接受null
- models.SET_DEFAULT:把外鍵設置為默認值,但是在規划時此字段要設置默認值
- models.DO_NOTHING:什么事都不做,就是放着這兒。
