日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django框架(10.Django中的模型类的定义以及模型类字段属性和选项)

發布時間:2024/9/30 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django框架(10.Django中的模型类的定义以及模型类字段属性和选项) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Django中的模型類的定義以及模型類字段屬性和選項

1.模型類的定義

2.模型類屬性命名限制??

2.1字段類型和屬性

2.2選項


1.模型類的定義

  • ORM:表就代表類,字段代表屬性
  • 模型類需要繼承自models.Model
  • 模型類會自動為我們添加(生成)一個主鍵
  • 有關表名,django會自動從模型類的名稱和包含它的應用程序中獲取數據庫表的名稱。模型的數據庫表名名稱是通過模型的“應用程序標簽”(使用的名稱)加入模型的類名稱,并在它們之間加入下劃線來構建。可以通過內部類設置覆蓋表名,在模型類的內部中添加內部的類進行設置,verbose_name是進入到admin的后臺中顯示信息的配置
  • class Meta:db_table = "表名"verbose_name = 'admin顯示的信息'

    2.模型類屬性命名限制??

    1)不能是python的保留關鍵字。

    2)不允許使用連續的下劃線,這是由django的查詢方式決定的。

    3)定義屬性時需要指定字段類型,通過字段類型的參數指定選項,語法如下:

    ? ? ?屬性名=models.字段類型(選項)

    2.1字段類型和屬性

    使用時需要引入django.db.models包,字段類型如下:

    類型

    描述

    AutoField

    自動增長的IntegerField,通常不用指定,不指定時Django會自動創建屬性名為id的自動增長屬性。

    BooleanField

    布爾字段,值為True或False。

    NullBooleanField

    支持Null、True、False三種值。

    CharField(max_length=最大長度)

    字符串。參數max_length表示最大字符個數。

    TextField

    大文本字段,一般超過4000個字符時使用。

    IntegerField

    整數

    DecimalField(max_digits=None, decimal_places=None)

    十進制浮點數。參數max_digits表示總位數。參數decimal_places表示小數位數。

    FloatField

    浮點數。參數同上(沒有DeciamlField精確)

    DateField([auto_now=False, auto_now_add=False])

    日期。

    1)參數auto_now表示每次保存對象時,自動設置該字段為當前時間,用于"最后一次修改"的時間戳,它總是使用當前日期,默認為false。

    2) 參數auto_now_add表示當對象第一次被創建時自動設置當前時間,用于創建的時間戳,它總是使用當前日期,默認為false。

    3)參數auto_now_add和auto_now是相互排斥的,組合將會發生錯誤。

    TimeField

    時間,參數同DateField。

    DateTimeField

    日期時間,參數同DateField。

    FileField

    上傳文件字段。

    ImageField

    繼承于FileField,對上傳的內容進行校驗,確保是有效的圖片。

    有的字段比如,性別這個屬性只能男或女,可以使用 SmallIntergerField字段.

    class UserInfo(models.Model):# 有序字典GENDER_CHOICES = ((0, "male"),(1, "female"))gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0, verbose_name="性別")

    ?

    2.2選項

    通過選項實現對字段的約束,選項如下:

    選項名

    描述

    default

    默認值。設置默認值。

    primary_key

    若為True,則該字段會成為模型的主鍵字段,默認值是False,一般作為AutoField的選項使用。

    unique

    如果為True, 這個字段在表中必須有唯一值,默認值是False。

    db_index

    若值為True, 則在表中會為此字段創建索引,默認值是False。

    db_column

    字段的名稱,如果未指定,則使用屬性的名稱。如果指定了,則生成表的時候,字段名就是設置的名字

    null

    如果為True,表示允許為空,默認值是False。

    blank

    如果為True,則該字段允許為空白,默認值是False。

    ?

    對比:null是數據庫范疇的概念,blank是后臺管理頁面表單驗證范疇的。

    經驗:

    當修改模型類之后,如果添加的選項不影響表的結構,則不需要重新做遷移,商品的選項中defaultblank不影響表結構。

    總結

    以上是生活随笔為你收集整理的Django框架(10.Django中的模型类的定义以及模型类字段属性和选项)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。