Django 模型筆記

關於模型:

1:一個模型類對應一個表,模型類中的屬性對應表中的一個字段
2:字段類型(數據庫支持的類型)python

字符串

1:CharField(Maxlength=長度)
models.CharFieldgit

2:TextFiled 大文本數據庫

3:IntegerField 整數django

4:DecimalField(max_digits=None,decimal_places=None) 小數
max_digits 位數總數 decimal_places 小數點後的位數code

5:FloatField 小數對象

6:BooleanField true/false字段繼承

7:DateField([auto_now=False,auto_now_add=False]) 日期
參數 auto_now:表示每次保存對象時,自動設置該字段爲當前時間
auto_now_add:表示當對象第一次被建立時,設置該字段爲當前時間
這兩個參數互斥
8:TimeField 時間 參數同上接口

9:DateTimeField 日期加時間 參數同上ci

10:FileField 一個上傳文件你的字段字符串

11:ImageField 繼承了FileField的全部屬性和方法,對上傳的對象進行確認,確保是一個image

字段選項

1:null 默認False 若爲true 則以null存入數據庫
2:blanke True則容許空值
3:db_column 命名數據庫列名稱,不設置默認模型裏的屬性名
4:primary_key 主鍵
5:unique 若爲true 則這個字段在表中有惟一值

模型成員

類屬性

(1)objects

manage 的一個對象,做用是與數據庫進行交互
例:Students.objects.get(pk=1) 獲取id爲1的學生,能夠進行增刪改查
當定義模型類時沒有定義管理器,系統自動定義一個名叫objects的管理器

(2)自定義管理器

例:

class grades(models.Model):
    stuobj=gradesManager()
    gname=models.CharField(max_length=20)
    def __str__(self):
        return self.gname

在Students模型類中加入:
stuobj=models.Manager()#設定一個名叫obj的管理器
在之後這個類的訪問中,能夠使用Students.obj.get()或者all()等方法
自定義後,objects就不能再使用了

(3)自定義管理器Manager類

模型管理器是django的模型與數據庫進行數據交互的接口,一個模型類能夠有多個管理器
用處:
1:能夠添加額外的方法(即除get(),all())
2:修改管理器返回的查詢集合(過濾)->重寫get.queryset()方法
例:

class gradesManager(models.Manager):
    def get_queryset(self):
        return  super(gradesManager,self).get_queryset().filter(id=1)

此處重寫的get_queryset()方法,篩選出id=1的信息 固然使用的時候要用stuobj()進行操做 2:建立對象

相關文章
相關標籤/搜索