<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ~~~python # 進入包含有 manage.py 的文件夾 python manage.py makemigrations python manage.py migrate ~~~ ``` \# class Person(models.Model): ? \# ? ? # 表的字段信息都可以在代碼中取到。 \# ? ? # 取到Person表所有的fields: fields = Person.\_meta.fields \# ? ? # 取所有字段的 verbose\_name ? ? \# ? ? # verbose\_name\_list = \[field.verbose\_name for field in fields\] ? ? ? \# ? ? # 字段名:field.name, ? ? \# ? ? # 字段的值:getattr(Person, field.name) ? ? \# ? ? # verbose\_name 是 字段備注信息,help\_text 是 字段補充說明, \# ? ? age = models.IntegerFiedl(null=True, verbose\_name="這是年齡") ? \# ? ? class Meta: ? ? ? ? \# ? ? ? ? # 表備注 ? ? ? ? \# ? ? ? ? verbose\_name = "個人信息表" \# 通過上面的介紹我們知道 Meta 類的作用就是用于定義 Model 的元數據,即不屬于 Model 的字段,但是可以用來標識字段一些屬性,下面我們介紹 Meta 定義的常見元數據以及如何在 Model 中使用它們。 \# 1) abstract \# 一個布爾類型的變量。這個屬性是定義當前的模型是不是一個抽象類。所謂抽象類是不會對應數據庫表的。一般我們用它來歸納一些公共屬性字段,然后繼承它的子類可以繼承這些字段。如果 abstract = True 這個 model 就是一個抽象類。 \# 2) ordering \# 用于執行獲取對象列表時的排序規則。它是一個字符串的列表或元組對象,它的使用格式是由代表字段的字符串和一個表明降序的'-'構成。當字段名前面沒有'-'時,將默認使用升序排列。使用'?'將會隨機排列。示例如下所示: \# ordering=\["add\_time"\] #按照升序排序 \# ordering=\["-add\_time"\]#按照降序 \# ordering=\["?add\_time"\]#隨機排序 \# #同時指定多個字段來進行排序 \# ordering=\['add\_time','-last\_login\_time'\]#先按升序,在按降序 \# 3) verbose\_name\_plural \# 這個元數據主要用在管理后臺的展示上,verbose\_name\_plural 是模型類的復數名 。如果不設置的話,Django 會使用小寫的模型名作為默認值,并且在結尾加上 s。通過此項元數據設置名字可以去掉 s。 可參見《Django Admin數據表可視化》一節。 \# 4) db\_table \# 這個字段用于指定數據表的名稱,通常沒有特別需求,將按照 Django 默認的規則生成 Model 對應的數據庫表名。 \# #定義該model在數據庫中的表名稱 \#   db\_table = 'Students' \# #使用自定義的表名,可以通過以下屬性 \#   table\_name = 'my\_owner\_table' \# 5) app\_lable \# 這個選項只在一種使用情形,就是你的模型不在默認的應用程序包下的 models.py 文件中,這時候需要指定你這個模型是哪個應用程序的 app\_label = 'app\_name'。 \# 6) managed \# 它是一個布爾類型的變量,默認為 Ture,代表 Django 會管理數據的生命周期,即利用 Django 提供的 syncdb 和 reset 命令可以完成創建和刪除數據表。如果為 False,則不會對此模型執行數據庫表創建或刪除操作。比如數據表之間存在 ManyToMany 的關系,在指定為 managed=False 的情況下,Django 不會自動創建中間表,需要我們自己手動創建。 \# 7) indexs \# 它是一個列表類型的元數據項,用來定義 Model 的索引,列表中的每一個元素都是 Index 類型的實例。 \# Index 引自 django.db.models.indexes.Index \# 8) default\_permissions \# Django 默認會給每一個定義的 Model 設置三個權限即添加、更改、刪除,它使用格式:default\_permissions=('add','change','delete','view') \# 9) permissions \# 除了 Django 默認給 Model 添加的三個權限之外,還可以通過 permisssions 給 Model 添加額外的權限。不過 permissions 是一個包含二元組的元組或者列表,所以使用時應該注意格式,即 permissions=\[(權限代碼,權限名稱)\],示例如下所示: \# permissions = \[(have\_read\_permission', '有讀的權限')\] \# 10) unique\_together \# 這個選項用于下面情形:當你需要通過兩個字段保持唯一性時使用。比如用戶的姓名(name)和 身份證號碼(ID number)兩者的組合必須是唯一的,那么需要這樣設置: \# unique\_together = (("first\_name", "last\_name"),) \# 一個 ManyToManyField 不能包含在 unique\_together 中。如果你需要驗證 ManyToManyField 字段的唯一驗證,嘗試使用 through 屬性進行關聯。 \# 11) proxy \# 默認值為為 False, 如果設置成 Ture,則表示為基類、父類的代理模型。這個選項在后續章節還會進行相關介紹,它的主要作用就是創建父模型的代理模型。 \# 12) db\_tablespace \# 表空間,用于優化數據庫性能,常用于 Oracle、PostgerSQL 數據庫。MySQL 數據庫不支持表空間,所以當數據存儲后端數據庫不支持的時候,Django 會在自動忽略這個元數據選項。 \# 13) get\_latest\_by \# 指定一個 DateField 或者 DateTimeField 字段的名字,即 model 的屬性名字。使用示例如下: \# get\_latest\_by = "order\_date" \# 這個設置讓你在使用模型管理器的 lastest() 方法時,默認使用order\_date指定字段來排序。 \# 14) order\_with\_respect\_to \# 這個選項一般用于多對多的關系中,它指向一個關聯對象并將該對象進行排序,使用元數據項后你會得到一個 get\_xxx\_order() 和set\_xxx\_order() 的方法,通過它們你可以設置或者得到排序的對象。 \# AutoField 自動增長的IntegerField,通常不用指定,不指定時Django會自動創建屬性名為id的自動增長屬性 \# BooleanField ?布爾字段,值為True或False \# NullBooleanField ?支持Null、True、False三種值 \# CharField 字符串,參數max\_length表示最大字符個數 \# TextField 大文本字段,一般超過4000個字符時使用 \# IntegerField ?整數 \# DecimalField ?十進制浮點數, 參數max\_digits表示總位數, 參數decimal\_places表示小數位數 \# FloatField ? ?浮點數 \# DateField 日期, 參數auto\_now表示每次保存對象時,自動設置該字段為當前時間,用于"最后一次修改"的時間戳,它總是使用當前日期,默認為False; 參數auto\_now\_add表示當對象第一次被創建時自動設置當前時間,用于創建的時間戳,它總是使用當前日期,默認為False; 參數auto\_now\_add和auto\_now是相互排斥的,組合將會發生錯誤 \# TimeField 時間,參數同DateField \# DateTimeField 日期時間,參數同DateField \# FileField 上傳文件字段 \# ImageField ? ?繼承于FileField,對上傳的內容進行校驗,確保是有效的圖片 ``` 以上是一些注解 代碼示例: ```from django.db import models #定義圖書模型類BookInfo class BookInfo(models.Model): btitle = models.CharField(max_length=20, verbose_name='名稱') bpub_date = models.DateField(verbose_name='發布日期') bread = models.IntegerField(default=0, verbose_name='閱讀量') bcomment = models.IntegerField(default=0, verbose_name='評論量') is_delete = models.BooleanField(default=False, verbose_name='邏輯刪除') class Meta: db_table = 'tb_books' # 指明數據庫表名 verbose_name = '圖書' # 在admin站點中顯示的名稱 verbose_name_plural = verbose_name # 顯示的復數名稱 def __str__(self): """定義每個數據對象的顯示信息""" return self.btitle #定義英雄模型類HeroInfo class HeroInfo(models.Model): GENDER_CHOICES = ( (0, 'male'), (1, 'female') ) hname = models.CharField(max_length=20, verbose_name='名稱') hgender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0, verbose_name='性別') hcomment = models.CharField(max_length=200, null=True, verbose_name='描述信息') hbook = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name='圖書') # 外鍵 is_delete = models.BooleanField(default=False, verbose_name='邏輯刪除') class Meta: db_table = 'tb_heros' verbose_name = '英雄' verbose_name_plural = verbose_name def __str__(self): return self.hname ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看