1. 程式人生 > >python-django-Model(基本結構)

python-django-Model(基本結構)

query error dex 根據 沒有 proto ive 錯誤 add

django為使用一種新的方式,即:關系對象映射(Object Relational Mapping,簡稱ORM)。

django中遵循 Code Frist 的原則,即:根據代碼中定義的類來自動生成數據庫表。

基本字段:

 1 AutoFiled(Filed)   int自增列   必須填入參數 primary_key=True
 2  
 3  BigAutoField(AutoField)   bigint自增列   必須填入參數 primary_key=True
 4  
 5  當model中如果沒有自增列,則自動會創建一個列名為id的列
 6  
 7  SmallIntegerField(IntegerField)   小整數  -32768~32767
 8
9 PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin,IntegerField) 正小整數 0~32767 10 11 IntegerField(Field) 整數列(有符號的) -2147483648~2147483647 12 13 PositiveIntegerField(PositiveIntegerRelDbTypeMixin,IntegerField) 正整數 0~2147483647 14 15 BigIntegerField(IntegerField)長整形(有符號的)-922337036854775808~9223372036854775807 16
17 BooleanField(Field) 布爾值類型 18 19 NullBooleanField(Field) 可以為空的布爾值 20 21 CharField(Field) 字符類型 22 23 TextField(Field) 文本類型 24 25 EmailField(CharField) 字符串類型 django admin 以及ModelForm中提供驗證機制 26 27 IPAddressField(Field) 字符串類型 django admin 以及ModelForm中提供驗證IPV4機制 28 29 GenericIPAddressField(Field) 字符串類型 django admin 以及ModelForm中提供驗證IPV4和IPV6 參數:protocol,用於指定ipv4或ipv6:
both,ipv4,ipv6 30 31 URLField(CharField) 字符串類型 django admin 以及ModelForm中提供驗證URL 32 33 SlugField(CharField) 字符串類型 django admin 以及ModelForm中提供驗證 支持字母數字下劃線連接符(減號) 34 35 CommaSeparatedIntegerField: varchar(%(max_length)s), 必須由逗號分開的整數,必須有max_length參數 36 37 UUIDField(Field) 字符串類型,Django Admin以及ModelForm中提供對UUID格式的驗證 38 39 FilePathField(Field) 字符串,Django Admin以及ModelForm中提供讀取文件夾下文件的功能 參數: 40 path, 文件夾路徑 41 match=None, 正則匹配 42 recursive=False, 遞歸下面的文件夾 43 allow_files=True, 允許文件 44 allow_folders=False, 允許文件夾 45 46 FileField(Field) 字符串,路徑保存在數據庫,文件上傳到指定目錄 47 - 參數: 48 upload_to = "" 上傳文件的保存路徑 49 storage = None 存儲組件,默認django.core.files.storage.FileSystemStorage 50 51 ImageField(FileField) 字符串,路徑保存在數據庫,文件上傳到指定目錄 52 - 參數: 53 upload_to = "" 上傳文件的保存路徑 54 storage = None 存儲組件,默認django.core.files.storage.FileSystemStorage 55 width_field=None, 上傳圖片的高度保存的數據庫字段名(字符串) 56 height_field=None 上傳圖片的寬度保存的數據庫字段名(字符串) 57 58 DateTimeField(DateField) 日期+時間格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 59 60 DateField(DateTimeCheckMixin,Field) 日期格式 YYYY-MM-DD 61 62 TimeField(DateTimeCheckMixin,Field) 時間格式 HH:MM[:ss[.uuuuuu]] 63 64 65 FloatField(Field) 浮點型 66 DecimalField(Field) 10進制小數 67 參數: 68 max_digits,小數總長度 69 decimal_places,小數位長度 70 71 BinaryField: longblob,存儲二進制數據,不能使用filter函數獲得QuerySet

返回值為字段在數據庫中的屬性,Django字段默認的值為:

 1 AutoField: integer AUTO_INCREMENT,
 2             BigAutoField: bigint AUTO_INCREMENT,
 3             BinaryField: longblob,
 4             BooleanField: bool,
 5             CharField: varchar(%(max_length)s),
 6             CommaSeparatedIntegerField: varchar(%(max_length)s),
 7             DateField: date,
 8             DateTimeField: datetime,
 9             DecimalField: numeric(%(max_digits)s, %(decimal_places)s),
10             DurationField: bigint,
11             FileField: varchar(%(max_length)s),
12             FilePathField: varchar(%(max_length)s),
13             FloatField: double precision,
14             IntegerField: integer,
15             BigIntegerField: bigint,
16             IPAddressField: char(15),
17             GenericIPAddressField: char(39),
18             NullBooleanField: bool,
19             OneToOneField: integer,
20             PositiveIntegerField: integer UNSIGNED,
21             PositiveSmallIntegerField: smallint UNSIGNED,
22             SlugField: varchar(%(max_length)s),
23             SmallIntegerField: smallint,
24             TextField: longtext,
25             TimeField: time,
26             UUIDField: char(32),

字段參數:

 1  null                數據庫中字段是否可以為空
 2     db_column           數據庫中字段的列名
 3     db_tablespace
 4     default             數據庫中字段的默認值
 5     primary_key         數據庫中字段是否為主鍵
 6     db_index            數據庫中字段是否可以建立索引
 7     unique              數據庫中字段是否可以建立唯一索引
 8     unique_for_date     數據庫中字段【日期】部分是否可以建立唯一索引
 9     unique_for_month    數據庫中字段【月】部分是否可以建立唯一索引
10     unique_for_year     數據庫中字段【年】部分是否可以建立唯一索引
11 
12     django admin
13         verbose_name        Admin中顯示的字段名稱
14         blank               Admin中是否允許用戶輸入為空
15         editable            Admin中是否可以編輯
16         help_text           Admin中該字段的提示信息
17         choices             Admin中顯示選擇框的內容,用不變動的數據放在內存中從而避免跨表操作
18                             如:gf = models.IntegerField(choices=[(0, ‘哈哈),(1, 啦啦啦),],default=1)
19     django
20         error_messages      自定義錯誤信息(字典類型),從而定制想要顯示的錯誤信息;
21                             字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date
22                             如:{null: "不能為空.", invalid: 格式錯誤}
23 
24         validators          自定義錯誤驗證(列表類型),從而定制想要的驗證規則
25                             from django.core.validators import RegexValidator
26                             from django.core.validators import EmailValidator,URLValidator,DecimalValidator,27                             MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator
28                             如:
29                                 test = models.CharField(
30                                     max_length=32,
31                                     error_messages={
32                                         c1: 優先錯信息1,
33                                         c2: 優先錯信息2,
34                                         c3: 優先錯信息3,
35                                     },
36                                     validators=[
37                                         RegexValidator(regex=root_\d+, message=錯誤了, code=c1),
38                                         RegexValidator(regex=root_112233\d+, message=又錯誤了, code=c2),
39                                         EmailValidator(message=又錯誤了, code=c3), ]

python-django-Model(基本結構)