django专栏 search 01.必会基础查询

import os
if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings')
    import django
    django.setup()
    from idea import models
    # 必会13条

    objs = models.User.objects
    # 1.all() 查询所有数据
    print(objs.all())
    # <QuerySet [<User: pear>, <User: apple>, <User: rose>, <User: lili>]>

    # 2.filter() 带有过滤条件的查询
    print(objs.filter(username='lili'))
    # <QuerySet [<User: lili>]>

    # 3.get() 直接获取对象,不存在则报错
    print(objs.get(pk=4))
    # lili

    # 4.first()
    print(objs.all().first())
    # pear

    # 5.last()
    print(objs.all().last())
    # lili

    # 6.values() 类似列表嵌套字典
    print(objs.values('username', 'age'))
    # <QuerySet [{'username': 'pear', 'age': 18} ... {'username': 'lili', 'age': 20}]>

    # 7.values_list() 类似列表嵌套元组
    print(objs.values_list('username', 'age'))
    # <QuerySet [('pear', 18) ... ('lili', 20)]>
    # 查看内部的sql语句
    # 方式1:QuerySet.query
    # 方式2:配置文件

    # 8.distinct() 去重
    # 筛选结果有主键存在时无法去重,带主键时数据一定不同
    print(objs.values('username').distinct())
    # < QuerySet[{'name': 'pear'} ... {'name': 'lili'}] >

    # 9.order_by 排序
    print(objs.order_by('age'))
    # '-age' 降序
    # <QuerySet [<User: pear>, <User: lili>, <User: rose>, <User: apple>]>

    # 10.reverse 反转 必须先排序后才可以反转
    print(objs.order_by('age').reverse())
    # <QuerySet [<User: apple>, <User: rose>, <User: lili>, <User: pear>]>

    # 11.count() 统计数据的个数
    print(objs.count())
    # 4

    # 12.exclude() 排除在外
    print(objs.exclude(username='lili'))
    # <QuerySet [<User: pear>, <User: apple>, <User: rose>]>

    # 13. exists() 是否存在
    print(objs.filter(pk=5).exists())
    # False

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值