Djang的model創(chuàng)建的字段和參數(shù)詳解
更新時(shí)間:2019年07月27日 10:42:18 作者:bainianminguo
這篇文章主要介紹了Djang的model創(chuàng)建的字段和參數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
class test_orm(models.Model): id = models.AutoField(primary_key=True) # int自增列,必須填入?yún)?shù)primary_key=True,當(dāng)model中沒有自增咧,如果不寫,python會(huì)自動(dòng)創(chuàng)建一個(gè)名為id的自增咧 age = models.IntegerField(default=12) # 一個(gè)整數(shù)類型,范圍-21474836648到21474836648 name = models.CharField(max_length=64) # 字符類型,必須提供max_length的參數(shù),表示字符的最大長度 import datetime t1 = models.DateField(auto_now_add=True,default=datetime.date(year=2018,month=4,day=3)) # t1 = models.DateField(auto_now=True) # 日期字段,日期格式,YYYY-MM-DD,相當(dāng)于python中的 t2 = models.DateTimeField(auto_now=True) # t2 = models.DateTimeField(auto_now_add=True) # 日期時(shí)間字段,格式為YYYY-MM-DD HH:MM:SS # auto_now_add:創(chuàng)建數(shù)據(jù)記錄的時(shí)候會(huì)把當(dāng)前時(shí)間添加到數(shù)據(jù)庫 # auto_now:每次更新記錄的時(shí)候會(huì)更新字段 t3 = models.SmallIntegerField() # 小整數(shù),從-32768到32768 t4 = models.PositiveIntegerField() # 正整數(shù)類型,從0到21474836648 t5 =models.PositiveSmallIntegerField() # 正整數(shù)類型,從0到32768 t6 = models.BigIntegerField() # 長整數(shù),從-9223372036854775808到9223372036854775808 t7 = models.BooleanField() # 布爾值類型 t8 = models.NullBooleanField() # 可以為空的布爾值類型 t9 = models.TextField() # 文本類型 t10 =models.EmailField() # 字符串類型,僅僅在django的admin會(huì)校驗(yàn)郵箱的格式 t11 = models.IPAddressField() # 字符串類型,僅僅在django的admin會(huì)校驗(yàn)ipv4的格式 t12 = models.GenericIPAddressField(protocol="ipv4") # t12 = models.GenericIPAddressField(protocol="ipv6") # t12 = models.GenericIPAddressField(protocol="both") # 字符串類型,在django的admin中會(huì)同時(shí)校驗(yàn)ipv4和ipv6 t13 = models.URLField() # 字符串類型,僅僅在django的admin會(huì)校驗(yàn)url的格式 t14 = models.SlugField() # 字符串類型,django的admin提供驗(yàn)證字母,數(shù)字下劃線,減號 t15 = models.UUIDField() t16 = models.FileField() # 保存路徑到數(shù)據(jù)庫中 t17 = models.FloatField() # 浮點(diǎn)型 # import datetime # now = datetime.datetime.now() # # d = datetime.timedelta(days=7) # # now = now + d # 上面的代碼是求一個(gè)時(shí)間間隔,當(dāng)前時(shí)間的的7天后的時(shí)間 # ------------------------------------------------------- # 字段參數(shù) t18 = models.CharField(null=True,unique=True,db_index=True,primary_key=True,max_length=64,default="aaa") # db_index:為這個(gè)字段設(shè)置索引 t19 = models.ForeignKey(to="test1",to_field="name",related_name="3b",on_delete=models.CASCADE(),db_constraint=False) # to:關(guān)聯(lián)那張表 # to_field:關(guān)聯(lián)表的哪個(gè)字段 # related_name:反向查找的時(shí)候帶起表明_set # on_delete:表示我這個(gè)字段關(guān)聯(lián)的單表刪除了,我這個(gè)表的數(shù)據(jù)該如何處理 # db_constraint:修改外鍵設(shè)置為軟關(guān)聯(lián),不一定一定要從另外一張表中選,可以自定義,默認(rèn)是True,可以調(diào)整為False <br data-filtered="filtered"><br data-filtered="filtered"><br data-filtered="filtered"> to和related_name也可以用在多對多的關(guān)系中,已經(jīng)設(shè)計(jì)數(shù)據(jù)庫,這2個(gè)屬性最好都加上 <br data-filtered="filtered"> # 這個(gè)就是元類,就是我們經(jīng)常說的元數(shù)據(jù) class Meta: db_table = "ddddd" # 設(shè)置表明 unique_together = ("t12","t19") # 聯(lián)合唯一 index_together = ("t1","t13") # 聯(lián)合索引,為這兩列做一個(gè)索引 ordering = "t19" # 指定默認(rèn)按照什么來排序
models.DecimalField(max_digits=4,decimal_places=2,default=34.43)
小數(shù),max_digits是小數(shù)+總數(shù)的最大長度,decimal_places是小數(shù)部分的最大長度
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)圖像去霧效果的示例代碼
本文將利用《bringing old photos back to life》 的開源代碼,并在此基礎(chǔ)上進(jìn)行修改,從而實(shí)現(xiàn)圖像去霧的效果,感興趣的小伙伴可以學(xué)習(xí)一下2022-02-02Ubuntu16安裝Python3.9的實(shí)現(xiàn)步驟
這篇文章主要介紹了Ubuntu16安裝Python3.9的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12在Python中字典按值排序的實(shí)現(xiàn)方法
這篇文章主要介紹了在Python中字典按值排序的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11使用Python在Windows下獲取USB PID&VID的方法
今天小編就為大家分享一篇使用Python在Windows下獲取USB PID&VID的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07