日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django定义模型类-14

發布時間:2024/7/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django定义模型类-14 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 1. 定義
  • 字段類型
  • 約束類型

django的模型類定義在應用下的 models.py 文件中。

模型類繼承自 django.db.models 包下的 Model 類。

新創建應用 book ,我們將在此應用下做演示。

python manage.py startapp book

1. 定義

以 ‘圖書-角色’為例創建模型類

from django.db import modelsclass Book(models.Model):b_title = models.CharField(max_length=20, verbose_name="標題")b_pub_date = models.DateField(verbose_name="發布日期")b_read = models.IntegerField(default=0, verbose_name="閱讀數")b_comment = models.IntegerField(default=0, verbose_name="評論數")is_delete = models.BooleanField(default=False, verbose_name="邏輯刪除")class Meta:db_table = "book"verbose_name = "書籍"verbose_name_plural = verbose_namedef __str__(self):return self.b_titleclass Role(models.Model):GENDER_CHOICES = ((0, 'female'),(1, 'male'))r_name = models.CharField(max_length=20, verbose_name="角色名稱")r_gender = models.SmallIntegerField(choices=GENDER_CHOICES, verbose_name="性別", default=0)r_describe = models.CharField(max_length=200, verbose_name="描述信息", null=True)r_book = models.ForeignKey(Book, on_delete=models.CASCADE, verbose_name="書籍")is_delete = models.BooleanField(default=False, verbose_name="邏輯刪除")class Meta:db_table = "role"verbose_name = "角色"verbose_name_plural = verbose_namedef __str__(self):return self.r_name
  • db_table 指定數據表名字,如果未指明,將會以小寫 應用名+模型類名 為數據表名字。
  • verbose_name 指定在 admin 站點中顯示的名字
  • 如果沒設置主鍵,django會自動生成一個自動增長的主鍵列。如果設置了主鍵,django不會再自動生成。

  • 屬性命名限制
    • 不能是python的保留關鍵字。
    • 不允許使用連續的下劃線,這是由django的查詢方式決定的。
    • 定義屬性時需要指定字段類型,通過字段類型的參數指定選項,語法如下:
    字段名 = models.類型名(約束)

定義模型類基本格式如下:

from django.db import modelsclass 類名(models.Model):字段名 = models.類型名(約束)class Meta:db_table = "表名"verbose_name = admin中顯示名字verbose_name_plural = admin中顯示名字復數

字段類型

django-ORM的基本字段類型

1、models.AutoField  自增列 如果沒有的話,默認會生成一個名稱為 id 的列,如果要顯示的自定義一個自增列,必須將給列設置為主鍵 primary_key=True。2、models.CharField  字符串字段 必須 max_length 參數3、models.BooleanField  布爾類型 不能為空,Blank=True4、models.ComaSeparatedIntegerField  用逗號分割的數字=varchar繼承CharField,所以必須 max_lenght 參數5、models.DateField  日期類型 date對于參數,auto_now = True 則每次更新都會更新這個時間;auto_now_add 則只是第一次創建添加,之后的更新不再改變。6、models.DateTimeField  日期類型 datetime同DateField的參數7、models.Decimal  十進制小數類型 = decimal必須指定整數位max_digits和小數位decimal_places8、models.EmailField  字符串類型(郵箱格式)對字符串進行正則表達式驗證9、models.FloatField  浮點類型 = double10、models.IntegerField  整形11、 整形范圍integer_field_ranges = {'SmallIntegerField': (-32768, 32767),'IntegerField': (-2147483648, 2147483647),'BigIntegerField': (-9223372036854775808, 9223372036854775807),'PositiveSmallIntegerField': (0, 32767),'PositiveIntegerField': (0, 2147483647),}12、models.IPAddressField  字符串類型(ip4格式)13、models.GenericIPAddressField  字符串類型(ip4或ip6格式)參數protocol可以是:both、ipv4、ipv6驗證時,會根據設置報錯14、models.NullBooleanField  允許為空的布爾類型15、models.PositiveIntegerFiel  正Integer16、models.PositiveSmallIntegerField  正smallInteger17、models.SlugField  減號、下劃線、字母、數字18、models.SmallIntegerField  數字數據庫中的字段有:tinyint、smallint、int、bigint19、models.TextField  字符串=longtext20、models.TimeField  時間 HH:MM[:ss[.uuuuuu]]21、models.URLField  字符串,地址正則表達式22、models.BinaryField  二進制23、models.ImageField 圖片 在數據庫中保存的是文件的路徑24、models.FilePathField 文件

約束類型

1、null=True數據庫中字段是否可以為空2、blank=Truedjango的 Admin 中添加數據時是否可允許空值3、primary_key = False主鍵,對AutoField設置主鍵后,就會代替原來的自增 id 列4、auto_now 和 auto_now_addauto_now 自動創建---無論添加或修改,都是當前操作的時間auto_now_add 自動創建---永遠是創建時的時間5、choices 枚舉GENDER_CHOICES = ((0, 'male'),(1, 'female'))r_gender = models.SmallIntegerField(choices=GENDER_CHOICES)6、max_length 最大長度7、default  默認值8、verbose_name  Admin中字段的顯示名稱9、name|db_column  數據庫中的字段名稱10、unique=True  不允許重復11、db_index = True  數據庫索 引 12、editable=True  在Admin里是否可編輯13、error_messages=None  錯誤提示14、auto_created=False  自動創建15、help_text  在Admin中提示幫助信息16、validators=[]17、upload-to 上傳路徑

轉載于:https://www.cnblogs.com/mxuanli/p/9871240.html

總結

以上是生活随笔為你收集整理的django定义模型类-14的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。