django 模型类的常见字段约束,以及filter 过滤和查询

null

不设置时默认设置为False。设置为True时,数据库表字段中将存入NULL的记录。 null和blank组合使用,null=True,blank=True,表示该字段可以为空

blank

默认设置为False。设置为True时,表字段许可无任何输入。设置为False 时,表字段为必须输入的字段

 

choices

备选设置。选择列表选项,如果设置后,该字段的表单必然会是下拉选择的。这个值必须是一个有小括号构成的元组,每个元组前一个字段将存入数据库,后一个字段是显示给用户看的。

default

默认值,设置后在用户无输入时,表字段将以这个选项的内容来存储到数据库字段

可以为python 支持的任意数据对象

editable

如何设置为False,将不会参与到表单的验证。默认是设置为True的

error_messages

这个选项实现校验时的错误提示。是字典结构的内容。

help_text

在表单中形成输入提示内容

primary_key

主键,设置为 True ,该字段将启用为主键。 默认是 False

unique

设置为 True 启用不存在重复值输入的设定,默认为False

unique_for_date

 

设定日期不存在重复输入,默认为False

 

verbose_name

字段的文本标签

validators

校验选项,用来配置校验的方法,构成的列表。

max_length

最大输入字符串的长度

min_length

最少输入字符串的长度


AutoField 自动增值的id字段

primary_key=True 为必设置选项

BigAutoField 自动增值的id字段

支持 1 到 9223372036854775807,之间的序号

BigIntegerField 长整形字段

 从 -9223372036854775808 到9223372036854775807 的整数

BinaryField 二进制字段

存储内存二进制数据,以 python bytes 对象来访问

BooleanField 布尔值字段

如果许可空的布尔值输入,换用 NullBooleadField

CharField可变长字符串字段

max_length 有最大输入选项为必须设置的选项

DateField日期字段

auto_now:每一次保存对象时,Django 都会自动将该字段的值设置为当前时间。一般用来表示 "最后修改" 时间。要注意使用的是当前日期,而并非默认值,所以

不能通过重写默认值的办法来改变保存时间。

auto_now_add:在第一次创建对象时,Django 自动将该字段的值设置为当前时间,一般用来表示对象创建时间。它使用的同样是当前日期,而非默认值

DateTimeField 有时刻的日期字段

auto_now=False

auto_now_add=False

当auto_now或者auto_now_add设置为True时,字段会有editable=True和blank=True的设定

; 固定精度的十进制数的字段。

它有两个必须的参数

max_digits:数字允许的最大位数

decimal_places:小数的最大位数

例如,要存储的数字最大值是999,而带有两个小数位,你可以使用

models.DecimalField(..., max_digits=5, decimal_places=2)

DurationField 日期时间增量型字段,存储着python timedelta 类数据

EmailField 邮件字段

FileField 文件字段

FilePathField 文件路径字段

FloatField 小数字段

ImageField 图片字段

IntegerField 整数字段

GenericIPAddressField ip地址字段

NullBooleanField 许可null的布尔值字段

PositiveIntegerField

0 到 2147483647,支持所有数据库取值范围的安全整数。

PositiveSmallIntegerField

0 到 32767 支持所有数据库取值范围的安全短整数。

SlugField

SmallIntegerField 短整形字段

TextField 备注型字段,用于存储复杂

TimeField 时间字段

URLField 网址字段

UUIDField

Python UUID 数据对象,一个32位长度的ID字符串

映射字段

ForeignKeyField 一对多字段

映射字段

ManyToManyField 多对多字段

映射字段

OneToOneField 一对一字段

 

 

表的查询

查询

Person.objects.all().order_by(“-username”)   按照username字段值 反向排序

Person.objects.all()[:10]切片操作,获取10个人,不支持负索引,切片可以节约内存,不支持负切片

Person.objects.get(name=name)  get获取不到报异常,不可取

get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filter

 

Person.objects.filter(name="abc")# 等于

Person.objects.filter(name__exact="abc")名称严格等于 "abc" 的人

Person.objects.filter(name__iexact="abc")# 名称为abc 但是不区分大小写,可以找到ABC, Abc, aBC,这些都符合条件

***Person.objects.filter(name__contains="abc")# 名称中包含"abc"的人

***Person.objects.filter(name__icontains="abc")#名称中包含"abc",且abc不区分大小写

Person.objects.filter(name__regex="^abc")# 正则表达式查询

Person.objects.filter(name__iregex="^abc")#正则表达式不区分大小写

****

Person.objects.filter(age__gt=15)# age > 15

Person.objects.filter(age__lt=15)# age < 15

Person.objects.filter(age__gte=15)# age >= 15

Person.objects.filter(age__lte=15)# age <= 15

Person.objects.filter(age__ne=15)# age != 15

数据的归档

 times = Person.objects.datas('add_time','month',order='desc')  默认正序,desc 倒序

 month   表示精准到月

 前端页面

{%  for time  in times %} 

     {{ time.year }} 年 {{time.month}} 月 {{time.day}}日    精准到月,这个time.day  永远是 1

{% endfor %}

filter 过滤有多个条件时

使用django的Q对象表示或者

from django.db.models import Q

Person.objects.filter(Q(name='张三') | Q(age=18))

查询过滤字段

__exact 精确等于                              like 'aaa'

 __iexact 精确等于 忽略大小写                ilike 'aaa'

 __contains 包含                              like'%aaa%'

 __icontains 包含 忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。

__gt 大于

__gte 大于等于

__lt 小于

__lte 小于等于

__in存在于一个list范围内

*****

__startswith以...开头

__istartswith以...开头忽略大小写

__endswith以...结尾

__iendswith以...结尾,忽略大小写 

__range 在...范围内

__year日期字段的年份   如   .filter(add_time_year ='2018')  筛选添加时间年份为2018年的数据

__month日期字段的月份

__day日期字段的日

__isnull=True/False

转载于:https://www.cnblogs.com/pythonClub/p/9932024.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea启动tomcat时蓝屏

idea启动tomcat时蓝屏 环境 1&#xff0c;windows10 2&#xff0c;tomcat8 3&#xff0c;jdk8 4&#xff0c;idea2020 解决方法&#xff1a; 因为之前安装的是绿色版jdk&#xff0c;然后再官网下载exe格式的jdk&#xff0c;idea再更换一下jdk就没有蓝屏了&#xff01; jdk8下…

ssh sftp 免密码 公钥登录

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享的是java ssh sftp 免密码登录。 1. JAVA代码 ssh连接 http://www.360doc.com/content/14/0409/16/9552892_367544139.shtml https://blog.csdn.net/u013066244/article/details/70198839 公钥和私钥不需要用代码生成&…

[css] 如何使用CSS的多列布局?

[css] 如何使用CSS的多列布局&#xff1f; div {-webkit-column-count: 3; /* Chrome, Safari, Opera */-moz-column-count: 3; /* Firefox */column-count: 3; }或者使用flex布局来实现多列布局个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&…

CF989E A Trance of Nightfall(概率+矩阵快速幂优化+倍增)

CF传送门 洛谷传送门 【题目分析】 在zxy大佬的讲解下终于懂了这道题的做法了qwq。。。 首先根据题意&#xff0c;出发点不一定在特殊点上&#xff0c;但第一次操作后&#xff0c;之后所有的操作都是在特殊点上&#xff0c;所以先考虑从线上出发的最大概率&#xff0c;再加一步…

linux centos/redhat mysql8.0安装(汇总贴)

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下linux 装 mysql8.0。以下都是实践过的可以用的。 1. yum方式安装&#xff08;最简单方式&#xff09; https://blog.csdn.net/weixin_37264997/article/details/80342838 2. linux系统安装mysql8.0.11完整教程&#xff…

[css] 请说说CSS3实现文本效果的属性有哪些?

[css] 请说说CSS3实现文本效果的属性有哪些&#xff1f; text-shadow:文字阴影效果 word-wrap:换行设置个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

SqlServer自定义聚合函数

sqlserver2017版本包括以上的可以使用string_agg(字段,’,’)函数 sqlserver查询版本&#xff1a; select versionSql Server自定义聚合函数详细bai步骤 开始-> 输出-> 首先用baiVS2008/VS2005建立一个SQL Server项目&#xff0c;右键解决方案添加新项 点击“确定…

C#前后端操作json数据

一、前端代码&#xff1a; function initDeptSelect() {var datas {"plant":$(#plantSelect).val()}; //获取某个组件的值&#xff0c;以json格式形式存放var jsonVal JSON.stringify(datas);//将值转化为json对象&#xff0c;必须要做$.ajax({type: post, …

[css] 请说说在什么时候用transition?什么时候使用animation?

[css] 请说说在什么时候用transition&#xff1f;什么时候使用animation&#xff1f; transition 相当于是个过度动画&#xff0c;需要又过度效果才会触发。一般用来做元素的放大缩小、平移旋转等简单的操作。transition 只执行一次&#xff0c;当需要执行多次时&#xff0c;一…

springboot : Failed to decode downloaded font 和 OTS parsing error

大家好&#xff0c;我是烤鸭&#xff1a; 采坑实录&#xff0c;看了很多人跟我有类似问题&#xff0c;但是都没解决我的问题&#xff1a; Failed to decode downloaded font 和 OTS parsing error: 尝试了把woff文件移动到其他可以加载的静态资源文件夹下&#xff0c;还是无法…

PowerDesigner从数据库导入

第一步&#xff1a;PowerDesigner逆向导入MYSQL数据库并显示中文注释 第二步&#xff1a;PowerDesigner互换表结构中NAME和CODE的值 注意事项&#xff1a; 1&#xff0c;mysql导入可能会卡死&#xff08;我试了好几遍&#xff09; 2&#xff0c;建议使用sqlserver和oracle…

根据时间戳 统计每天用户的金额总数

SELECT FROM_UNIXTIME(add_time, %Y-%m-%d) AS date, sum(price), user_idFROM ryc_order_courseWHERE add_time ! GROUP BY date, user_id 转载于:https://www.cnblogs.com/guolc/p/9934557.html

[css] 说说响应式设计(responsive design)和自适应设计(adaptive design)的区别?

[css] 说说响应式设计(responsive design)和自适应设计(adaptive design)的区别&#xff1f; 响应式是通过视口分辨率识别不同客户端展现不同的布局和内容&#xff0c;一套代码。自适应是通过识别时候分辨率针对不同设备返回不同的页面&#xff0c;多套代码。个人简介 我是歌…

达梦数据库常用SQL

转载请注明原文链接地址 --达梦数据库创建表 create table TEST_TABLE(scid varchar2(10) primary key,scname varchar2(20), scsm number(6), scprice number(4,2) );---------------------当前用户-------------------------- --达梦数据库-获取…

insert ignore duplicate key

Insert into T1select * from T2 where NOT EXISTS (select 1 from T1 X where X.GUIDT2.GUID);转载于:https://www.cnblogs.com/kakaisgood/p/9935028.html

【objectMapper实体转换异常】 com.fasterxml.jackson.databind.exc.MismatchedInputException

大家好&#xff0c;我是烤鸭&#xff1a; 采坑实录&#xff0c;想把json数据直接转成对象&#xff0c;其中有个属性是list<T>&#xff1a; 异常 1 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.util.ArrayList o…

[css] 什么是脱离文档流?有什么办法可以让元素脱离标准的文档流?

[css] 什么是脱离文档流&#xff1f;有什么办法可以让元素脱离标准的文档流&#xff1f; 文档流就是指元素在 HTML 文档中位置顺序决定排布的过程。HTML 元素有块级元素和行内元素&#xff0c;块级元素一个占一行&#xff0c;行内元素在一行内依次排布。整体元素从上到下的排布…

解决 org.apache.hadoop.io.nativeio.NativeIO$POSIX.stat异常

原因是我的maven使用的hadoop版本是3.1.2&#xff0c; 但是系统环境变量配置的hadoop的版本是3.0.0&#xff0c; 所以造成这个异常。 解决方案&#xff1a;将两个版本改成一致&#xff0c;如果修改的是系统环境变量&#xff0c;请重启电脑。

[Leetcode 376]摇摆序列 Wiggle Subsequence

【题目】 A sequence of numbers is called a wiggle sequence if the differences between successive numbers strictly alternate between positive and negative. The first difference (if one exists) may be either positive or negative. A sequence with fewer than t…

java 实现 常见排序算法(三)快速排序

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下基础排序算法之快速排序。快速排序是内部排序&#xff08;基于比较排序&#xff09;中最好的比较算法。 1. 快速排序&#xff1a; 原理&#xff1a;在要排的数&#xff08;比如数组A&#xff09;中选择一个中心值k…