溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Djang的model創(chuàng)建的字段和參數(shù)詳解

發(fā)布時間:2020-09-14 19:24:01 來源:腳本之家 閱讀:151 作者:bainianminguo 欄目:開發(fā)技術(shù)
class test_orm(models.Model):
  id = models.AutoField(primary_key=True)
  # int自增列,必須填入?yún)?shù)primary_key=True,當(dāng)model中沒有自增咧,如果不寫,python會自動創(chuàng)建一個名為id的自增咧
 
  age = models.IntegerField(default=12)
  # 一個整數(shù)類型,范圍-21474836648到21474836648
 
  name = models.CharField(max_length=64)
  # 字符類型,必須提供max_length的參數(shù),表示字符的最大長度
  import datetime
  t1 = models.DateField(auto_now_add=True,default=datetime.date(year=2018,month=4,day=3))
  # t1 = models.DateField(auto_now=True)
  # 日期字段,日期格式,YYYY-MM-DD,相當(dāng)于python中的
 
 
  t2 = models.DateTimeField(auto_now=True)
  # t2 = models.DateTimeField(auto_now_add=True)
  # 日期時間字段,格式為YYYY-MM-DD HH:MM:SS
 
  # auto_now_add:創(chuàng)建數(shù)據(jù)記錄的時候會把當(dāng)前時間添加到數(shù)據(jù)庫
  # auto_now:每次更新記錄的時候會更新字段
 
 
  t3 = models.SmallIntegerField()
  # 小整數(shù),從-32768到32768
 
  t4 = models.PositiveIntegerField()
  # 正整數(shù)類型,從0到21474836648
 
  t5 =models.PositiveSmallIntegerField()
  # 正整數(shù)類型,從0到32768
 
  t6 = models.BigIntegerField()
  # 長整數(shù),從-9223372036854775808到9223372036854775808
 
 
  t7 = models.BooleanField()
  # 布爾值類型
 
 
  t8 = models.NullBooleanField()
  # 可以為空的布爾值類型
 
 
  t9 = models.TextField()
  # 文本類型
 
  t10 =models.EmailField()
  # 字符串類型,僅僅在django的admin會校驗郵箱的格式
 
  t11 = models.IPAddressField()
  # 字符串類型,僅僅在django的admin會校驗ipv4的格式
 
 
  t12 = models.GenericIPAddressField(protocol="ipv4")
  # t12 = models.GenericIPAddressField(protocol="ipv6")
  # t12 = models.GenericIPAddressField(protocol="both")
  # 字符串類型,在django的admin中會同時校驗ipv4和ipv6
 
  t13 = models.URLField()
  # 字符串類型,僅僅在django的admin會校驗url的格式
 
 
  t14 = models.SlugField()
  # 字符串類型,django的admin提供驗證字母,數(shù)字下劃線,減號
 
  t15 = models.UUIDField()
 
 
  t16 = models.FileField()
  # 保存路徑到數(shù)據(jù)庫中
 
  t17 = models.FloatField()
  # 浮點型
 
 
  # import datetime
  # now = datetime.datetime.now()
  #
  # d = datetime.timedelta(days=7)
  #
 
  # now = now + d
 
 
  # 上面的代碼是求一個時間間隔,當(dāng)前時間的的7天后的時間
 
 
  # -------------------------------------------------------
  # 字段參數(shù)
 
  t18 = models.CharField(null=True,unique=True,db_index=True,primary_key=True,max_length=64,default="aaa")
 
  # db_index:為這個字段設(shè)置索引
 
  t19 = models.ForeignKey(to="test1",to_field="name",related_name="3b",on_delete=models.CASCADE(),db_constraint=False)
  # to:關(guān)聯(lián)那張表
  # to_field:關(guān)聯(lián)表的哪個字段
  # related_name:反向查找的時候帶起表明_set
  # on_delete:表示我這個字段關(guān)聯(lián)的單表刪除了,我這個表的數(shù)據(jù)該如何處理
  # db_constraint:修改外鍵設(shè)置為軟關(guān)聯(lián),不一定一定要從另外一張表中選,可以自定義,默認(rèn)是True,可以調(diào)整為False
  <br data-filtered="filtered"><br data-filtered="filtered"><br data-filtered="filtered">  to和related_name也可以用在多對多的關(guān)系中,已經(jīng)設(shè)計數(shù)據(jù)庫,這2個屬性最好都加上  <br data-filtered="filtered">
 
  # 這個就是元類,就是我們經(jīng)常說的元數(shù)據(jù)
  class Meta:
    db_table = "ddddd"
    # 設(shè)置表明
    unique_together = ("t12","t19")
    # 聯(lián)合唯一
 
    index_together = ("t1","t13")
    # 聯(lián)合索引,為這兩列做一個索引
 
 
    ordering = "t19"
    # 指定默認(rèn)按照什么來排序
models.DecimalField(max_digits=4,decimal_places=2,default=34.43)

小數(shù),max_digits是小數(shù)+總數(shù)的最大長度,decimal_places是小數(shù)部分的最大長度

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI