Django學習手冊 - ORM數據類型
阿新 • • 發佈:2018-08-24
django fir 字段 use oot 歸納 屬性 object 拓展
DOM 字段/參數
配置格式:
Module.字段(參數)
常用的字段歸納:
數字
models.AutoField() 自增列(int),必須設置為主鍵
models.IntegerField() 整型
models.FloatField() 浮點
models.DecimalField(max_digits=8,decimal_places=3) 精確浮點
字符串
models.CharField() 字符串,必須設置max_length 參數
models.TextField(Field) 文本類型
時間
models.DateField() models.DateTimeField() 參數: Auto_now #現在時間(更新時間) Auto_now_add #創建時間 註:(更新時間使用) 更新方式一: Obj = userinfo.objects.filter(id=1).update(name=”root”) 不生效 更新方式二: Obj= userinfo.objects.filter(id=1).first() Obj.save() 生效
其他
Models.BinaryField() 二進制
Models.ImageField() 圖片
Models.FilePathField() 文件
常用參數:
Null 是否為空(T,F) Default 默認參數 Primary_key 主鍵 Db_index 索引 Unique 唯一索引 Verbose_name 顯示字段中文
在Django admin中生效的字段:
Emailfield () GenericIPAddressField() URLField() EmailField(CharField) IPAddressField(Field) URLField(CharField) SlugField(CharField) UUIDField(Field)
FilePathField(Field) 參數: path, 文件夾路徑 match=None, 正則匹配 recursive=False, 遞歸下面的文件夾 allow_files=True, 允許文件 allow_folders=False, 允許文件夾 FileField(Field) 參數: upload_to = "" 上傳文件的保存路徑 storage = None 存儲組件,默認django.core.files.storage.FileSystemStorage
ImageField(FileField) CommaSeparatedIntegerField(CharField)格式必須為逗號分割的數字 拓展: models.CharField 對應的是MySQL的varchar數據類型
char 和 varchar的區別 : char和varchar的共同點是存儲數據的長度,不能 超過max_length限制, 不同點是varchar根據數據實際長度存儲,char按指定max_length()存儲數據;所有前者更節省硬盤空間;
返回值為字段在數據庫中的屬性,Django字段默認的值為:
‘AutoField‘: ‘integer AUTO_INCREMENT‘, ‘BigAutoField‘: ‘bigint AUTO_INCREMENT‘, ‘BinaryField‘: ‘longblob‘, ‘BooleanField‘: ‘bool‘, ‘CharField‘: ‘varchar(%(max_length)s)‘, ‘CommaSeparatedIntegerField‘: ‘varchar(%(max_length)s)‘, ‘DateField‘: ‘date‘, ‘DateTimeField‘: ‘datetime‘, ‘DecimalField‘: ‘numeric(%(max_digits)s, %(decimal_places)s)‘, ‘DurationField‘: ‘bigint‘, ‘FileField‘: ‘varchar(%(max_length)s)‘, ‘FilePathField‘: ‘varchar(%(max_length)s)‘, ‘FloatField‘: ‘double precision‘, ‘IntegerField‘: ‘integer‘, ‘BigIntegerField‘: ‘bigint‘, ‘IPAddressField‘: ‘char(15)‘, ‘GenericIPAddressField‘: ‘char(39)‘, ‘NullBooleanField‘: ‘bool‘, ‘OneToOneField‘: ‘integer‘, ‘PositiveIntegerField‘: ‘integer UNSIGNED‘, ‘PositiveSmallIntegerField‘: ‘smallint UNSIGNED‘, ‘SlugField‘: ‘varchar(%(max_length)s)‘, ‘SmallIntegerField‘: ‘smallint‘, ‘TextField‘: ‘longtext‘, ‘TimeField‘: ‘time‘, ‘UUIDField‘: ‘char(32)‘,
Django學習手冊 - ORM數據類型