一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - 簡(jiǎn)單了解Django ORM常用字段類型及參數(shù)配置

簡(jiǎn)單了解Django ORM常用字段類型及參數(shù)配置

2020-05-05 11:24子欽加油 Python

這篇文章主要介紹了簡(jiǎn)單了解Django ORM常用字段類型及參數(shù)配置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了簡(jiǎn)單了解Django ORM常用字段類型參數(shù)配置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、數(shù)值型

  • AutoField對(duì)應(yīng)int(11)。自增主鍵,Django Model默認(rèn)提供,可以被重寫。
  • BooleanField對(duì)應(yīng)tinyint(1)。布爾類型字段,一般用于記錄狀態(tài)標(biāo)記。
  • DecimalField對(duì)應(yīng)decimal。開發(fā)對(duì)數(shù)據(jù)精準(zhǔn)要求較高大的業(yè)務(wù)時(shí)考慮使用。比如:cash=models.DecimalField(max_length, decimal_places=2, default=0, verbose_name=“消費(fèi)金額”),就是定義長(zhǎng)度為8位、精度位2位的數(shù)字,例如數(shù)字:666666.66。
  • IntergerField對(duì)應(yīng)**int(11) **。同AutoField一樣,唯一的差別就是不自增。
  • PositiveIntegerField。同IntegerField,只包含正整數(shù)。
  • SmallIntegerField對(duì)應(yīng)smallint。小整數(shù)時(shí)一般會(huì)用到。

二、字符型

django對(duì)應(yīng)到Mysql中有兩種類型:longtext和varchar。

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

  • CharField對(duì)應(yīng)varchar。基礎(chǔ)的varchar類型。
  • URLField.繼承自CharField,但是實(shí)現(xiàn)了對(duì)URL特特殊處理。用來存儲(chǔ)URL數(shù)據(jù),非URL數(shù)據(jù)可以在業(yè)務(wù)層就拒絕掉,不會(huì)存入數(shù)據(jù)庫中。
  • UUIDField對(duì)應(yīng)char(32)。除了在PostgreSQL中使用的是uuid類型外,在其他數(shù)據(jù)庫中均是固定長(zhǎng)度char(32),用來存放生成的唯一id。
  • EmailField。同URLfield一樣繼承自CharField,多了對(duì)email的特殊處理。
  • FileField。同URLField一樣,它繼承自CharField,對(duì)了對(duì)文件的特殊處理。
  • TextField對(duì)應(yīng)longtext。一般用于存放大量文本內(nèi)容,比如新聞?wù)摹⒉┛驼摹?/li>
  • ImageField。繼承自FileField,用來處理圖片相關(guān)的數(shù)據(jù),在展示上會(huì)有所不同。

三、日期類型

django中有3中日期類型,分別對(duì)應(yīng)Mysql的date、datetime和time

  • DateField對(duì)應(yīng)date
  • DateTimeField對(duì)應(yīng)datetime
  • TimeField對(duì)應(yīng)time

四、關(guān)系類型

  • ForeignKey,外鍵
  • OneToOneField,一對(duì)一
  • ManyToManyField,多對(duì)多

五、參數(shù)

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

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

每個(gè)字段里面都提供了參數(shù)可以選擇:

  • null。可以同blank進(jìn)行對(duì)比。null用于設(shè)定在數(shù)據(jù)庫層面是否允許為空
  • blank。針對(duì)業(yè)務(wù)層面,該值是否允許為空。
  • choices。配置字段的choices后,在admin頁面上就可以看到對(duì)應(yīng)的可選項(xiàng)展示。
  • db_column。默認(rèn)情況下,定義的field就是對(duì)應(yīng)數(shù)據(jù)庫中的字段名稱,通過這個(gè)參數(shù)可以指定Model中的某個(gè)字段對(duì)應(yīng)數(shù)據(jù)庫中的哪個(gè)字段。
  • db_index。數(shù)據(jù)庫索引配置。
  • default。默認(rèn)值配置。
  • editable。是否可編輯,默認(rèn)是True。如果不想這個(gè)字段顯示在頁面上,可以配置為False。
  • error_messages。用來自定義字段值校驗(yàn)失敗時(shí)的異常提示,它是字典格式。key的值可選項(xiàng)為null、blank、invalid、invalid_choice、unique和unique_for_date。
  • help_text。字段提示語,配置這一項(xiàng)后,在頁面對(duì)應(yīng)字段的下方會(huì)展示此配置。
  • primary_key。主鍵,一個(gè)Model只允許設(shè)置一個(gè)字段為primary_key。
  • unique。唯一約束,當(dāng)需要配置唯一值時(shí),設(shè)置unique=True,設(shè)置此項(xiàng)后,不需要設(shè)置db_index。
  • unique_for_date。針對(duì)date(日期)的聯(lián)合約束。比如說一天只能寫一篇博文,即:unique_for_date=“博文”
  • unique_for_month。針對(duì)月份的聯(lián)合約束 。
  • unique_for_month。針對(duì)年份的聯(lián)合約束。
  • verbose_name。字段對(duì)應(yīng)的展示文案。
  • validators。自定義校驗(yàn)邏輯,同form類似。

關(guān)于Django字段類型中 blank和null的區(qū)別

blank

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

如果為True,字段允許為空,默認(rèn)不允許。

null

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

如果為True,空值將會(huì)被存儲(chǔ)為NULL,默認(rèn)為False。

如果想設(shè)置BooleanField為空時(shí)可以選用NullBooleanField型字段。

一句話概括

  • null 是針對(duì)數(shù)據(jù)庫而言,如果 null=True, 表示數(shù)據(jù)庫的該字段可以為空。
  • blank 是針對(duì)表單的,如果 blank=True,表示你的表單填寫該字段的時(shí)候可以不填,比如 admin 界面下增加 model 一條記錄的時(shí)候。直觀的看到就是該字段不是粗體
  • 通俗點(diǎn)說,該字段null=true后,你進(jìn)行插入,修改操作時(shí)可以為空,然后Django把空值轉(zhuǎn)換成null存在數(shù)據(jù)庫中,而blank只是在表單驗(yàn)證的時(shí)候會(huì)檢測(cè)你是否可以為空

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://www.cnblogs.com/zmdComeOn/p/12157139.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本一区二区免费在线观看 | 日韩精品欧美高清区 | 成人黄色免费网站 | 色综合色狠狠天天综合色 | 午夜五月天 | 夫妻性生活在线 | 亚洲图片二区 | 欧洲肥女大肥臀 | 成人黄色免费网站 | 精品国产国产精2020久久日 | 国色天香社区视频免费高清在线观看 | 互换身体全集免费观看 | 精品国产综合 | 成人欧美一区二区三区黑人 | 亚洲福利 影院 | 动漫美女强行被吸乳做羞羞事 | 免费日韩 | 男人猛进猛出女人下面视频 | 美女在线看永久免费网址 | 桃子视频www | 欧美成人第一页 | 久久机热视频 这里只有精品首页 | 久久亚洲国产成人影院 | 我将她侵犯1~6樱花动漫在线看 | 美女模特被c免费视频 | 国产最新精品视频 | 色综合视频一区二区观看 | 成年人视频在线免费观看 | 欧美视频久久 | 毛片a级放荡的护士hd | 国产永久一区二区三区 | free性欧洲| 加勒比伊人 | 国产成人h视频在线播放网站 | 白丝打脚枪 | 四虎影院2019| 图片专区小说专区卡通动漫 | 久久99热狠狠色AV蜜臀 | 人人最怕九月羊 | 国产欧美一区二区精品久久久 | 男人j桶进女人p桶爽 |