美文网首页
Django 数据库|models操作

Django 数据库|models操作

作者: 宁静消失何如 | 来源:发表于2018-04-12 10:53 被阅读247次

相关API
1.get(**kwargs)

解释:返回与筛选条件相匹配的Model对象,返回结果有且只有一个。

说明:如果符合条件的对象多于一个抛出MultipleObjectsReturned异常,如果没有找到抛出DoesNotExist异常

语法:ModelName.objects.get(itemName=itemNameValue)

例子:Author.objects.get(id=1)

2.all()

解释:查询所有结果(懒加载),当查询的时候并不真实发送sql语句,用的时候才会真的去查询

语法:ModelName.objects.all()

例子:Author.objects.all(id=1)

3.filter(**kwargs)

解释:包含了与所给的筛选条件相匹配的QuerySet

语法:ModelName.objects.filter(itemName=itemNameValue)

例子:Author.objects.filter(id=1)

4.exclude(**kwargs):

解释:包含了与所给的筛选件不匹配的QuerySet,于filter正好相反

语法:ModelName.objects.exclude(itemName=itemNameValue)

例子:Author.objects.filter(id=1)

5.order_by(*fields)

解释:对查询结果进行排序

语法:ModelName.objects.all().order_by("itemName")

例子:Author.objects.all().order_by("id")

6.reverse()

解释:对查询结果反向排序

语法:ModelName.objects.all().order_by("itemName").reverse()

例子:Author.objects.all().order_by("id")

7.distinct()

解释:对查询结果去重

语法:ModelName.objects.all().distinct()

例子:Author.objects.all().distinct()

8.values(*fields)

解释:返回一个ValuesQuerySet(一个特殊的QuerySet)

说明:运行后得到的不是一系列model的实例对象,而是一个可迭代的字段序列

语法:ModelName.objects.filter(name=value).values("name","name")

例子:Author.objects.filter(id=1).values("name","id")

9.values_list(*fields)

解释:与values相似只是返回的是一个元组

语法:ModelName.objects.filter(name=value).values_list("name","name")

例子:Author.objects.filter(id=1).values_list("name","id")

10.count()

解释:返回数据库中匹配查询的对象数量

语法:ModelName.objects.filter(itemName=itemNameValue).count()

例子:Author.objects.filter(name="xiaol").count()

11.first()/last()

解释:第一条记录/最后一条记录

语法:ModelName.objects.filter(itemName=itemNameValue).first()

例子:Author.objects.filter(name="xiaol").last()

关联查询:

方法:使用两个下划线(__)可以进行关联查询

例子:查询AutherDetail的信息

语法:AuthorDetail.objects.filter(id="2").values("sex","email", "author__name")

聚合查询:需要引入from django.db.models import *

方法:使用aggreagte关键字

用法:xxx.filter(查询条件).aggregate(别名=聚合函数('聚合字段'))

语法:Author.objects.filter(name="xiaol").aggregate(myCount=Count('id'))

分组查询:需要引入from django.db.models import *

方法:使用aggreagte关键字

用法:xxx.filter(分组字段).annotate(分组后操作)

语法:Author.objects.filter(name="xiaol").annotate(myCount=Count('id'))

相关文章

  • Model 之Making queries

    一旦创建你了data models,Django可以通过抽象database API操作数据库的"增"、"删"、"...

  • Django 数据库|models操作

    相关API1.get(**kwargs) 解释:返回与筛选条件相匹配的Model对象,返回结果有且只有一个。 说明...

  • Django框架MySQL数据库到models模型的映射关系

    设计models模型 Django自动生成models如果数据库表已经存在,执行命令,可以自动生成Models模型...

  • Django技术详解(五)开发Models

    Django中的Models是什么? 通常,一个Model对应数据库的一张数据表‘ Django中Models以类...

  • django:models操作

    django关于数据库的操作,使用ORM框架。以类的形式表示一个表的关系。 字段 每个表的字段类型 小结: 基本上...

  • Django中ORM找出内容不为空的数据

    在django操作数据库的时候如何找出内容不为空的数据呢? 上面代码中的models.Asset.objects....

  • Django_Models

    Models介绍 Django中的Models是什么? 通常,一个Models对应数据库中的一张数据表 ...

  • Django 的Models介绍

    Django的Models是什么?一个model对应数据库中的一张数据表;Django中Models以类的形式表现...

  • Django blog - Django models 介绍

    欢迎访问个人博客 Abstract Django 模型models是与数据库相关的。Django 为 sqlite...

  • Django(4)Model

    Django中的Models通常,一个Model对应数据库的一张数据表Django中Models以类的形式表现它包...

网友评论

      本文标题:Django 数据库|models操作

      本文链接:https://www.haomeiwen.com/subject/khlxkftx.html