• python之django orm


    必知必会13条

    <1> all():                 查询所有结果
     
    <2> filter(**kwargs):      它包含了与所给筛选条件相匹配的对象
     
    <3> get(**kwargs):         返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
     
    <4> exclude(**kwargs):     它包含了与所给筛选条件不匹配的对象
     
    <5> values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列
     
    <6> values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
     
    <7> order_by(*field):      对查询结果排序
     
    <8> reverse():             对查询结果反向排序,请注意reverse()通常只能在具有已定义顺序的QuerySet上调用(在model类的Meta中指定ordering或调用order_by()方法)。
     
    <9> distinct():            从返回结果中剔除重复纪录(如果你查询跨越多个表,可能在计算QuerySet时得到重复的结果。此时可以使用distinct(),注意只有在PostgreSQL中支持按字段去重。)
     
    <10> count():              返回数据库中匹配查询(QuerySet)的对象数量。
     
    <11> first():              返回第一条记录
     
    <12> last():               返回最后一条记录
     
    <13> exists():             如果QuerySet包含数据,就返回True,否则返回False
    

    示例

    """
    
    ORM小练习
    
    """
    
    import os
    
    if __name__ == '__main__':
        #加载Djang00项目的配置信息
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ormday69.settings")
        #导入Django,并启动Django项目
        import django
        django.setup()
    
        from app01 import models
        #查询所有的人
        ret = models.Person.objects.all()
        print(ret)
        #get查询
        ret = models.Person.objects.get(name="小黑")
        print(ret)
        #filter
        ret = models.Person.objects.filter(id=100)#不存在返回一个空的QuerySet,不会报错
        print(ret)
        # 就算查询的结果只有一个,返回的也是QuerySet,我们要用索引的方式取出第一个元素
        ret = models.Person.objects.filter(id=1)[0]
        print(ret)
        print("exclude".center(80,"*"))
        #exclude
        ret = models.Person.objects.exclude(id=1)
        print(ret)
        print("values".center(80,'*'))
        #values 返回一个QuerySet对象,里面都是字典。不写字段名,默认查询所有的字段
        ret = models.Person.objects.values("name","birthday")
        print(ret)
        print("values_lisst".center(80,'*'))
        #values 返回一个QuerySet对象,里面都是元组。不写字段名,默认查询所有的字段
        ret = models.Person.objects.values_list("name","birthday")
        print(ret)
        print("order_by".center(80, '*'))
        #order_by按照指定的字段排序
        ret = models.Person.objects.all().order_by("birthday")
        print(ret)
        print("reverse".center(80, '*'))
        # reverse 将一个有序的QuerySet 反转顺序
        #对有序的QuerySet才能调用reverse
        ret = models.Person.objects.all().order_by("birthday").reverse()
        print(ret)
        print("first".center(80, '*'))
        #first 返回QuerySet中的第一个对象
        ret = models.Person.objects.all().first()
        print(ret)
        print("last".center(80, '*'))
        # last 返回QuerySet中的最后一个对象
        ret = models.Person.objects.all().last()
        print(ret)
        print("exists".center(80, '*'))
        # exists 判断表里面有没有数据
        ret = models.Person.objects.exists()
        print(ret)
    
  • 相关阅读:
    Windows程序员的Linux快捷键
    Handeler的详细解释
    Asp.Net_Mvc_View
    使用脚本方式和使用控件方式来输出Html内容的区别
    当发布时报错: 找不到 obj\Debug\Package\PackageTmp\xxx.aspx 文件
    网路岗v1.2简单使用
    Html.Encode
    Android开发中的错误
    Asp.Net_Mvc_IgnoreRoute
    Linux目录结构
  • 原文地址:https://www.cnblogs.com/zanao/p/13367743.html
Copyright © 2020-2023  润新知