zoukankan      html  css  js  c++  java
  • 077:【Django数据库】Q表达式详解

    Q表达式详解:

    如果想要实现所有价格高于100元,并且评分达到9.0以上评分的图书。那么可以通过以下代码来实现:

    books = Book.objects.filter(price__gte=100,rating__gte=9)

    以上这个案例是一个并集查询,可以简单的通过传递多个条件进去来实现。

    但是如果想要实现一些复杂的查询语句,比如要查询所有价格低于10元,或者是评分低于9分的图书。那就没有办法通过传递多个条件进去实现了。这时候就需要使用 Q表达式 来实现了。示例代码如下:

    from django.db.models import Q
    books = Book.objects.filter(Q(price__lte=10) | Q(rating__lte=9))

    以上是进行或运算,当然还可以进行其他的运算,比如有 & 和 ~(非) 等。一些用 Q 表达式的例子如下:

    from django.db.models import Q
    # 获取id等于3的图书
    books = Book.objects.filter(Q(id=3))
    # 获取id等于3,或者名字中包含文字"记"的图书
    books = Book.objects.filter(Q(id=3)|Q(name__contains("")))
    # 获取价格大于100,并且书名中包含"记"的图书
    books = Book.objects.filter(Q(price__gte=100)&Q(name__contains("")))
    # 获取书名包含“记”,但是id不等于3的图书
    books = Book.objects.filter(Q(name__contains='') & ~Q(id=3))

    实例代码截图:

  • 相关阅读:
    C# 印刷文字识别-营业执照
    C# 印刷文字识别-身份证识别
    web视频点播平台
    web书籍信息管理系统
    web数字图书馆系统
    web文件监控系统
    web陶瓷商城管理系统
    web物品交易管理系统
    web校园单车管理平台
    web校园二手物品管理平台
  • 原文地址:https://www.cnblogs.com/zheng-weimin/p/10252207.html
Copyright © 2011-2022 走看看