Python-Django-經常使用字段和參數

-1 表模型若是不寫主鍵,orm會自動建立一個主鍵
-2 經常使用字段

AutoField
int自增列,必須填入參數 primary_key=True。當model中若是沒有自增列,則自動會建立一個列名爲id的列。
IntegerField
一個整數類型,範圍在 -2147483648 to 2147483647。
CharField
字符類型,必須提供max_length參數, max_length表示字符長度。
DateField
日期字段,日期格式 YYYY-MM-DD,至關於Python中的datetime.date()實例。
DateTimeField
日期時間字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],至關於Python中的datetime.datetime()實例
BooleanField
-對到數據庫int類型數據庫

不經常使用

SmallIntegerField
TextField:大文本
EmailField:雖然寫的是email,存的時候,只要是字符串就能夠(admin內的校驗)
FileField(Field):存文件
DecimalFielddjango

-orm字段參數

-null
-unique:惟一性約束
-db_index:給某個字段加索引  orm

增長索引:
方式一
nickname = models.CharField(max_length=256,db_index=True)
方式二
class Meta:
  indexs=[models.Index(fields=['nickname'])]

django 中主鍵必須是索引,外鍵默認是索引
-default
- DateField和DateTimeField
# auto_now_add=True 表示我要新增一條數據,自動設成當前時間
# auto_now=True 只要修改,就更新成當前時間對象

-關係字段:

-ForeignKey

-to
-to_field
-related_name
-related_query_name
-on_delete:
在刪除的時候,作什麼操做
-models.CASCADE 能夠級聯刪除(lqz以爲很差)
-models.SET_NULL (lqz推薦用它)
-models.SET_DEFAULT索引

-OneToOneField

-同ForeignKeyci

-ManyToManyField

-自關聯(本身關聯)
-評論表
id user article content parent_id
1 1 1 你好 null
2 2 1 傻逼 1字符串

-多對多關係自動,手動建立第三張表(中介模型)

第一種:所有手動建立,book跟author沒有關聯關係(很差,不建議使用)
第二種:自動建立第三張表(不太好,第三張表若是有其它字段,就不行了)
第三張:手動建立第三張表,而且用ManyToMany關聯,全部的查詢跟以前同樣,只是增,刪,改,須要經過表模型來處理
class

-db_constraint=False

-only和defer   

# 總結
# only和defer 返回結果是queryset對象內包裹表模型的對象
# only,就是隻查我指定的字段,必定會包含id 注意:沒查的字段不要再用了
# defer,指定不取哪一個字段,必定會包含id 注意:沒查的字段不要再用了
email

相關文章
相關標籤/搜索