日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Django中的AutoField字段使用

瀏覽:289日期:2024-10-05 16:51:01

【Django是一個(gè)機(jī)智的框架】

默認(rèn)情況下Djang會(huì)為ORM中定義的每一張表加上一個(gè)自增ID列,并且用這個(gè)列來做主鍵;出于一個(gè)MySQL-DBA的工作經(jīng)歷我覺得

Djanog還真是機(jī)智;這樣么說主要是因?yàn)槲矣龅竭^許多主從延時(shí)的問題,有些比較過分的會(huì)延時(shí)好幾周,通常這些都是因?yàn)閎inlog格式

為“ROW”但是表上不存在主鍵引起的。

如果當(dāng)前網(wǎng)站用的是Django開發(fā)的,我想就不會(huì)有這種事情發(fā)生了吧。

【AutoField】

Django默認(rèn)的行為就像這樣

class TestModel(models.Model): id = models.AutoField(primary_key=True)

數(shù)據(jù)庫層面對(duì)應(yīng)的SQL如下

CREATE TABLE `myapp_testmodel` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8

【注意】

如果你想的工增加AutoField列,但是又不指定這個(gè)列做為主鍵的話,是會(huì)報(bào)錯(cuò)的

class TestModel(models.Model): tid = models.AutoField()

不顯示指定主鍵,但是又給表增加AutoField列的話就會(huì)報(bào)錯(cuò)

assert not cls._meta.auto_field, 'Model %s can’t have more than one AutoField.' % cls._meta.labelAssertionError: Model myapp.TestModel can’t have more than one AutoField.

補(bǔ)充知識(shí):Django中models下常用Field以及字段參數(shù)

一、常見的FieldType數(shù)據(jù)庫字段類型

1、AutoField:自增Field域,自動(dòng)增加的一個(gè)數(shù)據(jù)庫字段類型,例如id字段就可以使用該數(shù)據(jù)類型,參數(shù)中必須填入primary_key=True

2、BigAutoField:和AutoField相同,只是比AutoField要大,參數(shù)中必須填入primary_key=True

3、BigIntegerField:大整型,只要用于存儲(chǔ)整型的數(shù)據(jù)

4、BinaryField:主要是存儲(chǔ)原始的二進(jìn)制數(shù)據(jù)

5、BooleanField:主要是存儲(chǔ)布爾類型的數(shù)據(jù),0和1

6、CharField:主要存儲(chǔ)字符串的數(shù)據(jù)類型

7、DateField:主要存儲(chǔ)日期類型的數(shù)據(jù)類型,日期格式為YYYY-MM-DD

8、DateTimeField:主要存儲(chǔ)時(shí)間相關(guān)的數(shù)據(jù)類型,格式為YYYY-MM-DD HH:MM:[ss[.uuuuuu]][TZ]

注意:DateField與DateTimeField有兩個(gè)屬性,配置auto_now_add=True,創(chuàng)建數(shù)據(jù)記錄的時(shí)候會(huì)把當(dāng)前時(shí)間添加到數(shù)據(jù)庫,配置auto_now=True,每次更新數(shù)據(jù)記錄的時(shí)候都會(huì)更新該字段

9、DecimalField:主要存儲(chǔ)固定精度的十進(jìn)制數(shù)據(jù)

--參數(shù):max_digits(小數(shù)總長度)/decimal_places(小數(shù)位長度)

10、EmailField:存儲(chǔ)電子郵件格式的數(shù)據(jù),Django Admin以及ModelForm中提供驗(yàn)證機(jī)制

11、FileField:存儲(chǔ)文件類型的數(shù)據(jù),文件上傳到指定目錄

--參數(shù):upload_to='....'(上傳文件的保存路徑)/storage=None(存儲(chǔ)組件,默認(rèn)django.core.files.storage.FileSystemStorage)

12、FilePathField:存儲(chǔ)文件路徑的數(shù)據(jù),提供讀取文件夾下文件的功能

--參數(shù):path(文件夾路徑)/match=None(正則匹配)/recursive=False(遞歸下面的文件夾)/allow_files=True(允許文件)/allow_folders=False(允許文件夾)

13、FloatField:存儲(chǔ)浮點(diǎn)型數(shù)據(jù)

14、ImageField:存儲(chǔ)圖片型數(shù)據(jù),文件上傳到指定目錄

--參數(shù):upload_to='.....'(上傳文件的保存路徑)/storage=None(存儲(chǔ)組件,默認(rèn)django.core.files.storage.FileSystemStorage)/width_field=None(上傳圖片的寬度保存的數(shù)據(jù)庫字段名<字符串>)/height_field=None(上傳圖片的高度保存的數(shù)據(jù)庫字段名<字符串>)

15、IntegerField:存儲(chǔ)整型數(shù)據(jù)

16、GenericIPAddressField:存儲(chǔ)IP地址信息數(shù)據(jù)

17、NullBooleanField:可以存儲(chǔ)布爾值數(shù)據(jù),也可以存儲(chǔ)空null數(shù)據(jù)

18、PositiveIntegerField:主要存儲(chǔ)正整數(shù)數(shù)據(jù)

19、SmallIntegerField:小整型,主要用于存儲(chǔ)整型的數(shù)據(jù)

20、TextField:存儲(chǔ)文章內(nèi)容信息數(shù)據(jù),存儲(chǔ)比較長的文本信息

21、TimeField:存儲(chǔ)時(shí)間信息

22、URLField:存儲(chǔ)URL網(wǎng)址信息,Django Admin以及ModelForm中提供驗(yàn)證url

23、IPAddressField:Django Admin以及ModelForm中提供驗(yàn)證IPV4機(jī)制

24、GenericIPAddressField:Django Admin以及ModelForm中提供驗(yàn)證IPV4和IPV6機(jī)制

二、常用關(guān)系型數(shù)據(jù)表處理Field

1、處理一對(duì)多關(guān)系數(shù)據(jù)表:使用ForeignKey

2、處理多對(duì)多關(guān)系數(shù)據(jù)表:使用ManyToManyField

三、字段參數(shù)

1、null:用于表示某個(gè)字段可以為空

2、unique:如果設(shè)置為unique=True則該字段在此表中必須是唯一的

3、db_index:如果db_index=True則代表這為此字段設(shè)置索引

4、default:為該字段設(shè)置默認(rèn)值

四、關(guān)系字段

1、to:設(shè)置要關(guān)聯(lián)的表

2、to_field:設(shè)置要關(guān)聯(lián)的表的字段

3、related_name:反向操作時(shí),使用的字段名,用于代替原反向查詢時(shí)的'表名_set'

4、on_delete:當(dāng)刪除關(guān)聯(lián)表中的數(shù)據(jù)時(shí),當(dāng)前表與其關(guān)聯(lián)的行的行為,例如刪除一個(gè)出版社,那么和這個(gè)出版社有關(guān)聯(lián)的書籍也都被刪除掉了,下面介紹on_delete的參數(shù)值:

on_delete=models.CASCADE:刪除關(guān)聯(lián)數(shù)據(jù),與之關(guān)聯(lián)也刪除

on_delete=models.DO_NOTHING:刪除關(guān)聯(lián)數(shù)據(jù),引發(fā)錯(cuò)誤IntegrityError

on_delete=models.PROTECT:刪除關(guān)聯(lián)數(shù)據(jù),引發(fā)錯(cuò)誤ProtectedError

on_delete=models.SET_NULL:刪除關(guān)聯(lián)數(shù)據(jù),與之關(guān)聯(lián)的值設(shè)置為null(前提FK字段需要設(shè)置為可空)

on_delete=models.SET_DEFAULT:刪除關(guān)聯(lián)數(shù)據(jù),與之關(guān)聯(lián)的值設(shè)置為默認(rèn)值(前提FK字段需要設(shè)置默認(rèn)值)

on_delete=models.SET:刪除關(guān)聯(lián)數(shù)據(jù):

a、與之關(guān)聯(lián)的值設(shè)置為指定值,設(shè)置:models.SET(值)

b、與之關(guān)聯(lián)的值設(shè)置為可執(zhí)行對(duì)象的返回值,設(shè)置:models.SET(可執(zhí)行對(duì)象)

5、db_constraint:是否在數(shù)據(jù)庫中創(chuàng)建外鍵約束,默認(rèn)為True,db_constraint一般使用在建立數(shù)據(jù)表連接關(guān)系當(dāng)中(例如創(chuàng)建外鍵),如果使用False,則是限制了表之間沒有關(guān)聯(lián),達(dá)到了軟連接的效果

五、元信息

ORM對(duì)應(yīng)的類里面包含另一個(gè)Meta類,而Meta類封裝了一些數(shù)據(jù)庫的信息,主要字段如下:

1、db_table:ORM在數(shù)據(jù)庫中的表名默認(rèn)為app_類名,可以通過db_table可以重寫表名

2、index_together:聯(lián)合索引,給兩列做索引

3、unique_together:聯(lián)合唯一索引,兩列不能重復(fù)

4、ordering:指定默認(rèn)按什么字段順序,只有設(shè)置了該屬性,我們查詢到的結(jié)果才可以被reverse()

具體介紹可以查看https://docs.djangoproject.com/en/dev/ref/models/fields/

以上這篇Django中的AutoField字段使用就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品成久久久久| 精品精品99| 日本一区二区免费高清| 国产午夜一区| 精品三区视频| 四季av一区二区凹凸精品| 精品五月天堂| 福利视频一区| 日韩在线短视频| 欧美日韩中文字幕一区二区三区| 欧美国产另类| 久久精品日韩欧美| yellow在线观看网址| 国产精品九九| 国产黄大片在线观看| a天堂资源在线| 国产高清视频一区二区| 国产a亚洲精品| 激情综合网站| 亚洲精品激情| 国产一区二区三区日韩精品 | 红杏一区二区三区| 亚洲精品在线影院| 视频一区视频二区在线观看| 老牛影视一区二区三区| 国产精品久一| 精品日韩毛片| 国产精品theporn| 蜜臀91精品国产高清在线观看| 亚洲狼人精品一区二区三区| 国产日本亚洲| 欧美成人高清| 国产精品久久久久久久久久久久久久久| 麻豆一区二区在线| 夜夜嗨一区二区| 欧美黑人做爰爽爽爽| 一本色道久久精品| 国产精品伦一区二区| 少妇精品导航| 日本中文字幕一区二区视频 | 精品一区在线| 精品美女视频| 亚洲免费福利一区| 91精品一区国产高清在线gif | 亚洲最新av| 欧美亚洲激情| 国产成人久久精品一区二区三区| 综合干狼人综合首页| 精品不卡一区| 久久福利在线| 国产三级精品三级在线观看国产| 男女精品网站| 亚洲午夜一级| 99久久久久| 欧美成人综合| 91久久久精品国产| 99视频精品视频高清免费| 欧美精品91| 国产精品115| 美女视频黄 久久| 国产精品毛片久久久| 国产精品一区亚洲| 国产精品亚洲综合色区韩国| 视频一区二区欧美| 日韩中文字幕一区二区三区| 欧美不卡视频| 丝袜a∨在线一区二区三区不卡| 女同性一区二区三区人了人一| 欧美日韩精品免费观看视频完整| 久久亚洲欧美| 欧美日韩亚洲一区在线观看| 国产极品一区| 999久久久精品国产| 综合激情网站| 国产极品模特精品一二 | 日韩高清一区在线| 国产亚洲欧美日韩精品一区二区三区| 99riav国产精品| 在线精品国产亚洲| 蜜桃久久精品一区二区| 免费一区二区视频| 欧美国产日韩电影| 麻豆成人91精品二区三区| 国产日本精品| 国产精品男女| 中文字幕高清在线播放| 婷婷综合六月| 日韩精品久久久久久久软件91| 日本不卡在线视频| 国产精品xxx在线观看| 国产精品videossex| 欧美xxxx中国| 999精品在线| 手机精品视频在线观看| 欧美一区网站| 国产一区二区三区四区五区传媒| www.51av欧美视频 | 日韩精品1区| 久色成人在线| 精品一区二区男人吃奶| 久久青草久久| 综合干狼人综合首页| 精品亚洲二区| 免费欧美日韩| 激情欧美一区二区三区| 欧美精品羞羞答答| 日韩黄色av| 国产精品久久久久久久免费观看| 麻豆成全视频免费观看在线看| 日本久久一区| 国产精品白丝久久av网站| 国产99精品一区| 国产伦理一区| 国产亚洲毛片在线| 成人三级高清视频在线看| 午夜在线视频一区二区区别| 精品一区二区三区在线观看视频| 日韩午夜av在线| 欧美女激情福利| 久久久久久色| 久久久精品五月天| 免费高清在线一区| 福利一区视频| 日韩国产高清在线| 另类亚洲自拍| 欧美.日韩.国产.一区.二区| 老司机精品视频网| 日本中文字幕一区二区| 一区视频在线| 精品一区av| 国产精品久久久免费| 日韩一区二区三区免费视频| 欧美女激情福利| 欧美成人高清| 蜜桃成人av| 久久在线免费| 麻豆精品视频在线观看视频| 日韩欧美中文字幕电影| 亚洲一区欧美二区| 久久电影一区| 亚洲一卡久久| 亚洲综合不卡| 亚洲欧洲日本mm| 欧美日韩日本国产亚洲在线 | 欧美啪啪一区| 日韩一区精品| 日本va欧美va精品| 亚洲精品自拍| 一区二区亚洲精品| 不卡在线一区| 亚洲一区不卡| 婷婷综合电影| 亚洲一区二区日韩| 亚洲精品国产精品粉嫩| 日韩av黄色在线| 国产美女久久| 精品无人区麻豆乱码久久久| 精品久久久久中文字幕小说| 伊人网在线播放| 日韩午夜黄色| 日韩欧美中文字幕在线视频| 亚洲精品激情| 欧美激情久久久久久久久久久| 国产精品传媒麻豆hd| 国产午夜精品一区在线观看| 亚洲v天堂v手机在线| 国产私拍福利精品视频二区| 国产一区调教| 欧美精品激情| 欧美激情福利| 亚洲国产成人精品女人| 五月激激激综合网色播| 免费不卡中文字幕在线| 国产亚洲精品美女久久 | 在线精品小视频| 卡一卡二国产精品| 婷婷综合亚洲| 欧美精品97| 久久性天堂网| 欧美xxxx中国| 日韩中文字幕视频网| 亚洲精品少妇| 婷婷中文字幕一区| 捆绑调教美女网站视频一区| 青青草视频一区| 欧美日韩在线观看视频小说| 欧美日韩调教| 日韩天堂av| 99精品美女| av亚洲在线观看| 国产亚洲精aa在线看| 久久久久免费av| 国产精品亚洲综合久久| 一区二区国产在线| 99精品视频在线| 国产中文欧美日韩在线 | 国产精品久久久久久久久久白浆 | 午夜一级久久| 亚州av乱码久久精品蜜桃| 国产成人调教视频在线观看|