亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Django中ORM常用字段類型及參數配置的示例分析

發布時間:2021-07-24 10:21:52 來源:億速云 閱讀:108 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Django中ORM常用字段類型及參數配置的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、數值型

  • AutoField對應int(11)。自增主鍵,Django Model默認提供,可以被重寫。

  • BooleanField對應tinyint(1)。布爾類型字段,一般用于記錄狀態標記。

  • DecimalField對應decimal。開發對數據精準要求較高大的業務時考慮使用。比如:cash=models.DecimalField(max_length, decimal_places=2, default=0, verbose_name=“消費金額”),就是定義長度為8位、精度位2位的數字,例如數字:666666.66。

  • IntergerField對應**int(11) **。同AutoField一樣,唯一的差別就是不自增。

  • PositiveIntegerField。同IntegerField,只包含正整數。

  • SmallIntegerField對應smallint。小整數時一般會用到。

二、字符型

django對應到Mysql中有兩種類型:longtext和varchar。

除了TextField是longtest類型外,其他屬于varchar類型。

  • CharField對應varchar。基礎的varchar類型。

  • URLField.繼承自CharField,但是實現了對URL特特殊處理。用來存儲URL數據,非URL數據可以在業務層就拒絕掉,不會存入數據庫中。

  • UUIDField對應char(32)。除了在PostgreSQL中使用的是uuid類型外,在其他數據庫中均是固定長度char(32),用來存放生成的唯一id。

  • EmailField。同URLfield一樣繼承自CharField,多了對email的特殊處理。

  • FileField。同URLField一樣,它繼承自CharField,對了對文件的特殊處理。

  • TextField對應longtext。一般用于存放大量文本內容,比如新聞正文、博客正文。

  • ImageField。繼承自FileField,用來處理圖片相關的數據,在展示上會有所不同。

三、日期類型

django中有3中日期類型,分別對應Mysql的date、datetime和time

  • DateField對應date

  • DateTimeField對應datetime

  • TimeField對應time

四、關系類型

  • ForeignKey,外鍵

  • OneToOneField,一對一

  • ManyToManyField,多對多

五、參數

上面django所提供的字段都是類。

比如models.CharField的定義就是:class CharField:。

每個字段里面都提供了參數可以選擇:

  • null。可以同blank進行對比。null用于設定在數據庫層面是否允許為空

  • blank。針對業務層面,該值是否允許為空。

  • choices。配置字段的choices后,在admin頁面上就可以看到對應的可選項展示。

  • db_column。默認情況下,定義的field就是對應數據庫中的字段名稱,通過這個參數可以指定Model中的某個字段對應數據庫中的哪個字段。

  • db_index。數據庫索引配置。

  • default。默認值配置。

  • editable。是否可編輯,默認是True。如果不想這個字段顯示在頁面上,可以配置為False。

  • error_messages。用來自定義字段值校驗失敗時的異常提示,它是字典格式。key的值可選項為null、blank、invalid、invalid_choice、unique和unique_for_date。

  • help_text。字段提示語,配置這一項后,在頁面對應字段的下方會展示此配置。

  • primary_key。主鍵,一個Model只允許設置一個字段為primary_key。

  • unique。唯一約束,當需要配置唯一值時,設置unique=True,設置此項后,不需要設置db_index。

  • unique_for_date。針對date(日期)的聯合約束。比如說一天只能寫一篇博文,即:unique_for_date=“博文”

  • unique_for_month。針對月份的聯合約束 。

  • unique_for_month。針對年份的聯合約束。

  • verbose_name。字段對應的展示文案。

  • validators。自定義校驗邏輯,同form類似。

關于Django字段類型中 blank和null的區別

blank

設置為True時,字段可以為空。設置為False時,字段是必須填寫的。字符型字段CharField和TextField是用空字符串來存儲空值的。

如果為True,字段允許為空,默認不允許。

null

設置為True時,django用Null來存儲空值。日期型、時間型和數字型字段不接受空字符串。所以設置IntegerField,DateTimeField型字段可以為空時,需要將blank,null均設為True。

如果為True,空值將會被存儲為NULL,默認為False。

如果想設置BooleanField為空時可以選用NullBooleanField型字段。

一句話概括

  • null 是針對數據庫而言,如果 null=True, 表示數據庫的該字段可以為空。

  • blank 是針對表單的,如果 blank=True,表示你的表單填寫該字段的時候可以不填,比如 admin 界面下增加 model 一條記錄的時候。直觀的看到就是該字段不是粗體

  • 通俗點說,該字段null=true后,你進行插入,修改操作時可以為空,然后Django把空值轉換成null存在數據庫中,而blank只是在表單驗證的時候會檢測你是否可以為空

關于“Django中ORM常用字段類型及參數配置的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

皋兰县| 洛南县| 富源县| 大丰市| 韶关市| 兴山县| 宁南县| 郯城县| 师宗县| 兴安盟| 鸡东县| 华阴市| 塔河县| 滦南县| 贵溪市| 安西县| 嫩江县| 宜兰县| 白城市| 乳源| 兰西县| 松潘县| 关岭| 大庆市| 桦南县| 寻乌县| 萍乡市| 沂南县| 鹰潭市| 调兵山市| 屏南县| 禹州市| 临泽县| 罗定市| 五莲县| 弋阳县| 竹溪县| 松江区| 涞源县| 西林县| 秦皇岛市|