Django进阶操作之下划线的使用

一、双下划线的使用

1 、说明

在Django中有相当多的操作是通过双下划线与动作连接起来使用,为了以后更加方便的查找和使用,

2、比较符

  1. 说明

    gt(大于)、lt(小于)、eq(等于)、gte(大于等于)、 lte(小于等于)

  2. 示例代码

    UserInfo.objects.filter(uid__gt=1)              # 获取id大于1的值
    UserInfo.objects.filter(uid__gte=1)              # 获取id大于等于1的值
    UserInfo.objects.filter(uid__lt=10)             # 获取id小于10的值
    UserInfo.objects.filter(uid__lte=10)             # 获取id小于10的值
    UserInfo.objects.filter(uidd__lt=10, uid__gt=1)   # 获取id大于1 且 小于10的值
    

3、范围操作符

  1. 说明

    in(包含)、contain(包括)、range(在范围内)、isnull(为空)

    startswith,istartswith, endswith, iendswith

  2. 示例代码

    UserInfo.objects.filter(id__in=[11, 22, 33])   # 获取id等于11、22、33的数据
    UserInfo.objects.exclude(id__in=[11, 22, 33])  # not in
    
    UserInfo.objects.filter(name__contains="小")
    UserInfo.objects.filter(name__icontains="test") # icontains大小写不敏感
    UserInfo.objects.exclude(name__icontains="h")
    
    UserInfo.objects.filter(id__range=[1, 2])   # 范围bettwen and
    
    UserInfo.objects.filter(create_date__isnull=True)
    

4、时间处理

  1. 说明

    时间操作也是我们开发中的常用的功能

  2. 示例代码

    # year:查询某年
    UserInfo.objects.filter(create_date__year=2018)
    # month:查询某月
    UserInfo.objects.filter(create_date__month=12)
    # day:某天
    UserInfo.objects.filter(create_date__day=3)
    # 查询时间段
    UserInfo.objects.filter(create_date__range=(datetime.date(2018, 1, 1), datetime.date(2018, 10, 4))
    # 大于等于某个时间
    UserInfo .filter(create_date__gte=datetime.date(2018, 1, 1))
    

猜你喜欢

转载自blog.csdn.net/qq_28452411/article/details/86553464
今日推荐