中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

關于Django中models數據類型的簡介

發布時間:2020-06-28 15:43:41 來源:億速云 閱讀:309 作者:清晨 欄目:編程語言

小編給大家分享一下關于Django中models數據類型的簡介,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!


介紹:在model中添加字段的格式一般為:“field_name = field_type(**field_options)”

1、field options(所有字段共用)

null默認為False,True則表示可以為null。(空字符串在數據庫中可能被存儲為'')

blank默認為False,True表示可以為空。

choice可選的,限制了該選項的字段值必須是所指定的choice中的一個。

db_column  數據庫column名稱。默認為本字段的名稱。

db_index  如果為True的話,該字段的數據庫索引將會被創建。

default   設置該字段的默認值,可以是值也可以是對象。

editable   默認為True,若為False,則不會在admin/界面顯示

primary_key  若設置為True,則表示將該字段設置為主鍵。一般情況下django默認會設置一個自增長的id主鍵。

unique   若設置為True,該字段值不可重復。

2、field type(可以分為普通字段以及關系字段)

普通字段

AutoField()  根據已有id自增長的整形唯一字段,一般每個model類不需設置該字段,因為django會為每個model自動設置。

        django默認會為每個model類添加如下語句:id = models.AutoField(primary_key=True)  當其他字段添加了primary_key屬性,則不會創建id字段了。

  每個model類僅能有一個主鍵。

BooleanField()  布爾型字段,默認的表單窗口部件是CheckBoxInput。

CharField()  字符型字段,默認的表單窗口部件是TextInput。該字段類型有一個必需參數:max_length  在數據庫水平限定了字符串最大長度。

 DateField()  日期字段,字段的值是python中datetime.date的實例,默認的表單窗口是TextInput有幾個可選的參數:

 auto_now=True/False:當設置為True時,每當該對象使用save()時,該字段的值就會被更新。

 auto_now_add=True/False: 當設置為True時,該字段的值為該對象被創建時的日期。

DateTimeField()  日期和時間字段,值為datetime.datetime實例。默認的表單窗口以及可選參數同上。

DecimalField()  混合精度的小數型數字字段。有兩個必需的參數:

 max_digits=ingt_number:限定數字的最大位數(包含小數位)。

 decimal_places=int_number:存儲數字的小數位。

EmailField(max_length=254, **options)  郵件字段,使用EmailValidator進行驗證。

關系字段

        關系字段:一對一,多對一,多對多

  一對一:  現在有很多一對一輔導班,也就是上課時,一個老師對應一個學生,一個學生對應一個老師

  多對一:  很多偏遠山區的學校可能整個學校只有一個老師,這一個老師對應多個學生,所有的學生對應這一個老師

  多對多:  而我們則很幸福,學校里有許多老師,一個老師教習一科,學生有多個老師,老師有多個學生。

ForeignKey(othermodel, on_delete, **options)  多對一或者一對多或者外鍵字段。

 othermodel:  所關聯的模型,'多' model使用外鍵關聯  '一'model。

      當所關聯的模型為他自己時,使用'self'

      當引用的模型為其他app中的模型時,要加上app名稱標簽:  'app_name.model_name'

      數據庫會自動在外鍵字段上創建索引,可以使用de_index=False關閉該功能。

 on_delete: 當刪除 "一" 模型對象時,django會根據該參數的值對與該對象相關聯的其他對象(也就是 ‘多’)進行操作。

        在django1.9以及之前的版本中,on_delete作為一個關鍵字參數。而在1.10則可以作為第二個參數

      models.CASCADE:   默認為models.CASCADE   級聯刪除。當刪除'一'時,‘多’會被刪除。比如:

             modles.PROTECT :    當刪除一個具有外鍵關系的對象時,會引發一個異常,阻止刪除該對象

      models.SET_NULL:   設置刪除對象所關聯的外鍵字段為null。但字段的null屬性必需為True

      models.SET_DEFAULT :    設置刪除對象所關聯的外鍵字段為默認的值。

      models.SET(value)  :設置刪除對象所關聯的對象的外鍵字段為value,value也可以是一個可調用函數。

                     models.DO_NOTHING :  不做任何操作

    limit_choices_to  限制該字段為選項形。格式:limit_choices_to={'is_staff': True}。值也可以為可調用函數。

              related_name  設置從關聯對象到自身的關系的名稱,若值為'+'  則關聯對象與自身無逆向關系。詳解請看官方文檔。

    to_field  設置所關聯對象的關聯字段。默認為關聯對象的主鍵字段。

ManyToManyField(othermodel, **options)  多對多字段。

 othermodel:  所關聯的model名稱

 db_table:  多對多關系會在兩個模型所對應的表中間創建一個‘中間表’ ,將多對多轉換為兩個多對一,該選項為這個中間表設置名稱。一般來說django會默認為中間表創建名稱,但人們讀起來可能搞不清楚究竟中間表關聯到了哪里。

 related_name:  同多對一字段中的related_name

 limite_choices_to:  同....

 symmetrical:  當多對多關聯對象為自身時可能會用到的參數。默認為True。a,b同屬于person模型,person中的friends字段與自身設置了多對多關系,當該值設置為True時,django假定關系為對稱,即:a是b的朋友,那么b也是a的朋友。設置為False時,django會強制為逆向關系創建描述信息。

 though:  不想讓django自動創建中間表,手動創建中間表所對應的model,通過though指定對應的model名稱。

 though_field:  當though參數被使用時,該參數才會有效。指定使用哪些中間模型字段來確立兩個模型的多對多關系。


看完了這篇文章,相信你對Django中models數據類型有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

兴安盟| 平山县| 湛江市| 松阳县| 紫金县| 四会市| 汝阳县| 依兰县| 和平区| 华宁县| 海宁市| 布尔津县| 河间市| 玉环县| 安康市| 唐海县| 平果县| 芦山县| 上蔡县| 任丘市| 紫阳县| 安吉县| 新邵县| 青神县| 昂仁县| 都江堰市| 华亭县| 安多县| 尼玛县| 惠东县| 巩义市| 涡阳县| 绥芬河市| 新绛县| 扶余县| 班玛县| 屯昌县| 商城县| 大连市| 永善县| 广元市|