【Django基础】1、Django ORM字段类型及字段类型详解
一、字段类型
字符串类型CharField() # 字符类型 -参数: 必须提供max_length参数, 表示字符长度 如
CharField(max_length=10) TextField() # 文本类型 EmailField() # Django
Admin以及ModelForm中提供验证机制 IPAddressField() # Django
Admin以及ModelForm中提供验证 IPV4 机制 GenericIPAddressField(Field) # Django
Admin以及ModelForm中提供验证 Ipv4和Ipv6 (推荐) URLField() # Django
Admin以及ModelForm中提供验证 URL SlugField() # Django
Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号) FilePathField() # Django
Admin以及ModelForm中提供读取文件夹下文件的功能
- 参数:
path, 文件夹路径
match=None, 正则匹配
recursive=False, 递归下面的文件夹
allow_files=True, 允许文件
allow_folders=False, 允许文件夹
PS: EmailField、GenericIPAddressField、URLField等仅给django-admin使用时才有特殊功能,如果不用admin,和CharField一样都表示普通字符串
数字类型布尔值整型 IntegerField(Field) - 整数列(有符号的) -2147483648 ~ 2147483647
PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField) -
正整数 0 ~ 2147483647 SmallIntegerField(IntegerField): - 小整数 -32768 ~
32767 BigIntegerField(IntegerField): - 长整型(有符号的)
-9223372036854775808 - 9223372036854775807浮点型 FloatField(Field) DecimalField(Field) # 10进制小数
- 参数: max_digits,小数总长度 decimal_places,小数位长度 BinaryField(Field) # 二进制类型
时间类型BooleanField(Field) - 布尔值类型 NullBooleanField(Field) - 可以为空的布尔值
- 自定义自增列 (当model中如果没有自增列,则自动会创建一个列名为id的列) AutoField(primary_key=True) 必须填入参数 primary_key=True
DateTimeField(DateField) - 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] DateField(DateTimeCheckMixin, Field) - 日期格式 YYYY-MM-DD TimeField(DateTimeCheckMixin, Field) - 时间格式 HH:MM[:ss[.uuuuuu]] DurationField(Field) - 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型
二、 字段属性
null -> db是否可以为空
default -> 默认值
primary_key -> 主键
db_column=‘xxx’ -> 列名
db_index=True -> 索引
unique -> 唯一索引
unique_for_date -> 数据库中字段【日期】部分是否可以建立唯一索引
unique_for_month -> 数据库中字段【月】部分是否可以建立唯一索引
unique_for_year -> 数据库中字段【年】部分是否可以建立唯一索引
auto_now_add -> 创建时,自动生成时间
auto_now -> 更新时,自动更新为当前时间 choices
django admin中显示下拉框,避免连表查询(连表查询效率低)
blank -> django admin是否可以为空
verbose_name -> django admin显示字段中文
editable -> django admin是否可以被编辑
error_messages -> django admin 错误信息(欠)
help_text -> django admin 提示
validators -> django form 自定义错误信息(欠)
示例:
from django.db import models # Create your models here. class UserInfo(models.Model): # 生成的表名称为app01_userinfo # 会自动创建id列(自增,主键) username = models.CharField(max_length=32,blank=True,verbose_name='用户名') # 用户名列,字符串类型,指定长度 password = models.CharField(max_length=60, help_text='pwd') email = models.EmailField(max_length=19,null=True,error_messages={'invalid': '请输入邮箱'} caption = models.CharField(max_length=32,unique=True) user_type_choices = ((1, '超级用户'), (2, '普通用户'),(3, '临时用户'),) # 保存在内存中 user_type_id = models.IntegerField(choices=user_type_choices,default=1) ctime = models.DateTimeField(auto_now_add=True, null=True) mtime = models.DateTimeField(auto_now=True, null=True) 方式一: mtime 时间不会更新 obj=UserInfo.objects.filter(id=1).update(caption='CEO') 方式二: mtime 时间会更新 obj=UserInfo.objects.filter(id=1).first() obj.caption = 'CEO' obj.save()
- Python - Django - ORM 自定义 char 类型字段
- Django框架学习 — 7.1模型详解 -- 字段类型
- Django ORM中常用的字段类型以及参数配置
- django自定义非主键自增字段类型详解(auto increment field)
- [转]Django model字段类型详解
- Django中ORM模型总结(二)[模型类的对应关系,模型类的属性,字段类型]
- Python Django ORM 字段类型、参数、外键操作
- Django(4)--Model层字段类型详解
- 简单了解Django ORM常用字段类型及参数配置
- Django Model层字段类型详解
- Django Model层字段类型详解
- Django模型字段类型详解
- 10)django-ORM(创建,字段类型,字段参数)
- Django model字段类型详解
- Django ORM 自定义 char 类型字段解析
- salesforce零基础学习(八十七)Apex 中Picklist类型通过Control 字段值获取Dependent List 值
- Python基础知识详解(数据类型、函数、包)
- django中orm可查询出的类型
- Django-html中显示后台数据中CharField(choices=())字段类型的数据
- Django基础(27): 快捷函数(shortcut function)模块详解