在models.Model中常用的数据字段格式说明
字段格式 | 可以使用的参数 | 说明 |
---|---|---|
BigIntegerField | 64位的大整数 | |
BooleanField | 布尔值,只有True和False两种 | |
CharField | max_length,min_length; | 指定的接受字符串长度 |
DateField | auto_now :每次存储时就自动加入当前日期 auto_now_add: 只有在对象被创建时才加入当前日期(创建日期) |
日期格式,可用于datetime.date |
DateTimeField | 同上 | 日期格式,对应到datetime.datetime |
DecimalField | max_digits: 可接受的最大位数 decimal_places: 在所有位数中,小数占几个位数 |
定点小数数值数据,适用于python中的Decimal模块实例 |
EmailField | max_length:最长字数 | 邮件格式的字段 |
FloatField | 浮点字段 | |
IntegerField | 整数字段,是通用性最高的整数格式 | |
PostiveIntegerField | 正整数字段 | |
SlugField | max_length:最大字符长度 | 和CharField一样,一般用来做网址的一部分 |
TextField | 长文字格式,一般用在HTML窗体的Textarea输入项目中 | |
UrlField | max_length:最大字符长度 | 和CharField一样,用于记录url |
详细见django文档的models说明
字段选项 | 说明 |
---|---|
null | 此字段不允许接受存储空值NULL,默认值为False |
blank | 此字段不允许接受存储空白内容,默认值为False |
choices | 以选项的方式作为此字段的候选值,(只有固定内容的数据可以使用) |
default | 输入此字段的默认值 |
help_text | 字段的求助信息 |
primary_key | 把此字段设置为数据表中的主键KEY,默认值为False |
unique | 设置此字段是否为唯一值,默认值为False |
Django ORM常用的函数以及修饰词
函数名称或修饰词 | 说明 |
---|---|
filter() | 返回符合指定条件的QuerSet |
exclude() | 返回不符合指定条件的QuerSet |
order_by() | 串接到QuerSet之后,针对每一指定的字段进行排序 |
all() | 返回所有的的Querset |
get() | 获得指定符合条件的唯一元素,如果找不到或者一个以上符合条件,都会产生exception |
first()/last() | 获得第1个元素 / 获得最后一个元素 |
aggregate() | 可以用来计算数据项的聚合函数 |
exists() | 用来检查是否存在否某指令条件的记录,通常附加在filter()后面 |
update() | 用来快速更新某些数据记录中的字段内容 |
iexact | 不区分大小写的条件设置 |
contains | 设置条件为含有某一字符串就符合,如SQL 语句中的 LIKE |
icontains | 设置条件为含有某一字符串就符合,如SQL 语句中的 ILIKE |
in | 提供一个列表,只有符合列表中的任何一个值均可以 |
gt / gte | 大于 / 大于等于 |
lt / lte | 小于 / 小于等于 |
一些函数如 reverse() 、exists() 等可以串接在另一些函数后面,用于进一步过滤信息,修饰词放在参数中,在字段后面加上2个下划线之后再串接,可以为条件设置增加风多的弹性。
Product.objects.filter(num__lt=2)、
Product.objects.all().orber_by('-price')
注意:
xxxx = modeks.ForeigenKey(Xaaa,on_delete=models.CASCADE)
创建表关联的时候会有一个ForeignKey字段,她负责指向另一张表的主键Primary Key,代表这个表格依附于另一张表格。on_delete = models.CASCADE是一个属性, 若主键数据被删除时,此数据也被删除。其他常设置的操作如下
- models.PEOTECT:禁止删除,并产生一个Excption(ProtectedError)
- models.SET_NULL:把外键设置为null,但是在规划时此字段要设置为可接受null
- models.SET_DEFAULT:把外键设置为默认值,但是在规划时此字段要设置默认值
- models.DO_NOTHING:什么事都不做,就是放着这儿。