Django基础篇-查询字段

时间:2019-08-18 08:00:01 来源:中原网 当前位置:撒哈拉河床 > 猎犬 > 手机阅读

Django基础篇-模型基础


  • 常用的查询

  • Field 的常用参数

  • 常用的模型字段类型


①常用的查询

  • 获取所有记录:

rs = User.objects.all()

  • 获取第一条数据:

rs = User.objects.first()

  • 获取最后一条数据:

rs = User.objects.last()

  • 根据参数提供的条件获取过滤后的记录:

rs = User.objects.filter(name="yuntuan")

注意:filter(**kwargs)方法:根据参数提供的提取条件,获取一个过滤后的 QuerySet。

  • 排除 name 等于 yuntuan 的记录:

rs = User.objects.exclude(name="yuntuan")

  • 获取一个记录对象:

rs = User.objects.get(name="yuntuan")

注意:get返回的对象具有唯一性质,如果符合条件的对象有多个,则 get 报错!

  • 对结果排序 order_by:

rs = User.objects.order_by("age")

  • 多项排序:

rs = User.objects.order_by("age", "id")

  • 逆向排序:

rs = User.objects.order_by("-age")

  • 将返回来的 QuerySet 中的 Model 转换为字典

rs = User.objects.all().values()

  • 获取当前查询到的数据的总数:

rs = User.objects.count()


# 查询对象的条件

查询对象的条件的意思是传给以上方法的一些参数。相当于是 SQL 语句中的 where 语句后面的条件,语法为“字段名__规则”:

  • exact 相当是等于号:

rs = User.objects.filter(name__exact="yuntuan")

iexact 跟 exact ,只是忽略大小写的匹配。

  • contains 包含:

rs = User.objects.filter(name__contains="yuntuan")

icontains 跟 contains ,唯一不同是忽略大小写。

  • startswith 以什么开始:

rs = User.objects.filter(name__startswith="yuntuan")

istartswith 跟 startswith,只是忽略大小写。

  • endswith:同 startswith,以什么结尾。

iendswith 跟 istartswith,以什么结尾,忽略大小写。

  • in 成员所属:

rs = User.objects.filter(age__in=[18,19,20])

  • gt 大于:

rs = User.objects.filter(age__gt=20)

  • gte 大于等于:

rs = User.objects.filter(age__gte=20)

  • lt 小于:

rs = User.objects.filter(age__lt=20)

  • lte 小于等于:

rs = User.objects.filter(age__lte=20)

  • range 区间:

rs = User.objects.filter(age__range=(18,20))

  • isnull 判断是否为空:

rs = User.objects.filter(country__isnull=True)

  • 切片:

rs = User.objects.all()[:2]

注意:不能使用负数作为切片。


② Field 的常用参数

  • primary_key:指定是否为主键。

  • unique:指定是否唯一。

  • null:指定是否为空,默认为 False。

  • blank:等于 True 时 form 表单验证时可以为空,默认为 False。

  • default:设置默认值。

  • DateField.auto_now:每次修改都会将当前时间更新进去,只有调用 Model.save() 方法才会调用,QuerySet.update 方法将不会调用。这个参数只是 Date 和 DateTime 以及 Time 类才有的。

  • DateField.auto_now_add:第一次添加进去,都会将当前时间设置进去。以后修改,不会修改这个值。

③常用的模型字段类型

  • IntegerField:整型,映射到数据库中的 int 类型。

  • CharField:字符类型,映射到数据库中的 varchar 类型,通过 max_length 指定最大长度。

  • TextField:文本类型,映射到数据库中的 text 类型。

  • BooleanField:布尔类型,映射到数据库中的 tinyint 类型,在使用的时候,传递 True/False 进去。如果要可以为空,则用 NullBooleanField。

  • DateField:日期类型,没有时间。映射到数据库中是 date 类型,在使用的时候,可以设置 DateField.auto_now 每次保存对象时,自动设置该字段为当前时间。设置 DateField.auto_now_add 当对象第一次被创建时自动设置当前时间。

  • DateTimeField:日期时间类型。映射到数据库中的是 datetime 类型,在使用的时候,传递 datetime.datetime() 进去。

例子:

上一篇成绩查询请扫描下方二维码

下一篇12星座配对吉凶查询表

相关文章:

猎犬本月排行

猎犬精选