zoukankan      html  css  js  c++  java
  • Django的查询表记录

    查询API

      (1) all() :查询所有结果         调用者:objects管理器 返回queryset

    ret=Book.objects.all()
    print(ret) # <QuerySet [<Book: GO>, <Book: linux>, <Book: 北京折叠>, <Book: 三体>, <Book: 追风筝的人>, <Book: 乱世佳人>]

      (2) filter() :   它包含了与所给筛选条件相匹配的对象          调用者:objects管理器 返回queryset

     # filter 方法:返回值queryset
    ret=Book.objects.filter(title="linux",price=111)
    print(ret) # <QuerySet [<Book: linux>]>

      (3) get方法():  返回与所给筛选条件相匹配的对象,返回结果有且只有一        调用者:objects管理器 返回查询到model对象 (注意:查询结果有且只有一个才执行)

    # get方法:返回查询到model对象
    ret=Book.objects.get(price=111)
    ret=Book.objects.get(title="linux")
    print(ret.title) # linux


      (4) first(),last()方法:     返回第一条记录和返回最后一条记录      调用者:queryset 返回model对象

    #  first() last()方法:queryset调用    返回model对象
     fbook=Book.objects.all()[0]
     fbook=Book.objects.all().first()
     lbook=Book.objects.all().last()


      (5) exclude():  它包含了与所给筛选条件不匹配的对象     调用者:objects管理器 返回queryset

    #exclude:返回值一个queryset
    ret=Book.objects.exclude(price=111)
    print(ret)


      (6) order_by():    对查询结果排序      由queryset对象调用,返回值是queryset

    # order_by:排序  由queryset对象调用,返回值是queryset
     ret=Book.objects.all().order_by("-price","-nid").first()
     print(ret)

      

      (7) count :    数数      由queryset对象调用 返回int

    #  count :数数  :由queryset对象调用 返回int
    ret=Book.objects.all().count()
    print(ret)


      (8) reverse():  对查询结果反向排序     由queryset对象调用,返回值是queryset

     # reverse():由queryset对象调用,返回值是queryset
    Book.objects.all().order_by("price").reverse()


      (9) exists():   如果QuerySet包含数据,就返回True,否则返回False    由queryset对象调用 返回值布尔值

    #  exists: 由queryset对象调用 返回值布尔值
    is_exist=Book.objects.all().exists()
    if is_exist:
         print("OK")


      (10)values()方法:    由queryset对象调用,返回值是queryset     一个可迭代的字典序列

    #  values方法:由queryset对象调用,返回值是queryset
     ret=Book.objects.all().values("title","price") # queryset [{"title":"linux"},{"title":"python"},...]
     print(ret) # <QuerySet [{'title': 'GO'}, {'title': 'linux'}, {'title': '北京折叠'}, {'title': '三体'}, {'title': '追风筝的人'}, {'title': '乱世佳人'}]>
    
    '''
     ret=[]
     for obj in Book.objects.all():
        temp={
            "title":obj.title
            "price":obj.price
        }
        ret.append(temp)
    
     '''


      (11)values_list():由queryset对象调用,返回值是queryset         一个元组序列

    #  values_list:由queryset对象调用,返回值是queryset
    ret=Book.objects.all().values_list("title","price")
    print(ret) # <QuerySet [('GO',), ('linux',), ('北京折叠',), ('三体',), ('追风筝的人',), ('乱世佳人',)]>


      (12)distinct():   从返回结果中剔除重复纪录    由queryset对象调用,返回值是queryset

     #distinct: 由queryset对象调用,返回值是queryset
    ret=Book.objects.all().values("title").distinct()
    print(ret)

    基于双下划线的模糊查询  

    in是三者之中的任意一个
    Book.objects.filter(price__in=[100,200,300])
    gt是大于
    Book.objects.filter(price__gt=100)
    it是小于
    Book.objects.filter(price__lt=100)
    range是在这个数之间
    Book.objects.filter(price__range=[100,200])
    contains是只要包含在其中
    Book.objects.filter(title__contains="python")
    icontains是不区分大小写只要包含在其中
    Book.objects.filter(title__icontains="python")
    startswith是以"py"开头的
    Book.objects.filter(title__startswith="py")
    时间
    Book.objects.filter(pub_date__year=2012)
    #查询价格大于200的书籍
    ret=Book.objects.filter(price__gte=200)
    print(ret)
    
        # 查询书籍名称以py开头的所有的书籍名称
    ret=Book.objects.filter(title__istartswith="py").values("title")
    ret=Book.objects.filter(title__contains="p").values("title")
    print(ret) # <QuerySet [{'title': 'pycharm'}, {'title': 'python'}]>
    
        # 查询2017年7月份的所有的书籍
        ret=Book.objects.filter(pub_date__year=2017,pub_date__month=7)
    print(ret) 

     

     

  • 相关阅读:
    Android学习---- 十月
    第17章 使用PHP和MySQL实现身份验证
    第13章 MySQL高级编程
    第12章 MySQL高级管理
    第11章 使用PHP从Web访问MySQL数据库
    第10章 使用MySQL数据库
    第9章 创建Web数据库
    第5章 代码重用与函数编写
    NOIP模拟赛-奶牛晒衣服(dry)
    BZOJ1008 /乘法原理+快速幂 解题报告
  • 原文地址:https://www.cnblogs.com/chenxi67/p/9843860.html
Copyright © 2011-2022 走看看