随笔分类 -  Django

主要记录Django学习过程
摘要:QuerySet API详解-all和select_related方法: all:获取这个ORM模型的所有QuerySet对象(没有对对象进行过滤、修改等)。 select_related:在提取某个模型的数据的同时,也提前将相关联的数据提取出来。比如提取文章数据,可以使用select_relate 阅读全文
posted @ 2019-01-16 13:14 zheng-weimin 阅读(181) 评论(0) 推荐(0)
摘要:QuerySet API详解-values和values_list: values:用来指定在提取数据出来,需要提取哪些字段。默认情况下会把表中所有的字段全部都提取出来,可以使用values来进行指定,并且使用了values方法后,提取出的QuerySet中的数据类型不是模型,而是在values方法 阅读全文
posted @ 2019-01-15 22:38 zheng-weimin 阅读(1320) 评论(0) 推荐(0)
摘要:QuerySet API详解-order_by: order_by:指定将查询的结果根据某个字段进行排序。如果要倒叙排序,那么可以在这个字段的前面加一个负号。示例代码如下: 一定要注意的一点是,多个order_by,会把前面排序的规则给打乱,而使用后面的排序方式。比如以下代码: 它只会根据作者的名字 阅读全文
posted @ 2019-01-13 19:48 zheng-weimin 阅读(1403) 评论(0) 推荐(0)
摘要:QuerySet API详解-filter、exclude、annotate: 在使用 QuerySet 进行查找操作的时候,可以提供多种操作。比如过滤完后还要根据某个字段进行排序,那么这一系列的操作我们可以通过一个非常流畅的 链式调用 的方式进行。比如要从文章表中获取标题为 123 ,并且提取后要 阅读全文
posted @ 2019-01-10 22:14 zheng-weimin 阅读(1167) 评论(0) 推荐(1)
摘要:objects对象所属类原理剖析: 我们通常做查询操作的时候,都是通过 模型名字.objects 的方式进行操作。其实 模型名字.objects 是一个 django.db.models.manager.Manager 对象,而 Manager 这个类是一个“空壳”的类,他本身是没有任何的属性和方法 阅读全文
posted @ 2019-01-10 21:27 zheng-weimin 阅读(445) 评论(0) 推荐(0)
摘要:Q表达式详解: 如果想要实现所有价格高于100元,并且评分达到9.0以上评分的图书。那么可以通过以下代码来实现: 以上这个案例是一个并集查询,可以简单的通过传递多个条件进去来实现。 但是如果想要实现一些复杂的查询语句,比如要查询所有价格低于10元,或者是评分低于9分的图书。那就没有办法通过传递多个条 阅读全文
posted @ 2019-01-10 20:22 zheng-weimin 阅读(492) 评论(0) 推荐(0)
摘要:F表达式详解: F表达式 是用来优化 ORM 操作数据库的。比如我们要将公司所有员工的薪水都增加1000元,如果按照正常的流程,应该是先从数据库中提取所有的员工工资到Python内存中,然后使用Python代码在员工工资的基础之上增加1000元,最后再保存到数据库中。这里面涉及的流程就是,首先从数据 阅读全文
posted @ 2019-01-10 20:07 zheng-weimin 阅读(500) 评论(0) 推荐(0)
摘要:ORM聚合函数详解-Sum: Sum :求指定对象的总和。比如要求图书的销售总额。那么可以使用以下代码实现: 以上的代码 annotate 的意思是给 Book 表在查询的时候添加一个字段叫做 total ,这个字段的数据来源是从 BookStore 模型的 price 的总和而来。 values 阅读全文
posted @ 2019-01-09 22:42 zheng-weimin 阅读(4220) 评论(0) 推荐(0)
摘要:ORM聚合函数详解-Max和Min: Max 和 Min :获取指定对象的最大值和最小值。 比如想要获取 Author 表中,最大的年龄和最小的年龄分别是多少。那么可以通过以下代码来实现: 如果最大的年龄是88,最小的年龄是18。那么以上的result将为: 具体的原生SQL如下: 具体实例截图如下 阅读全文
posted @ 2019-01-09 21:38 zheng-weimin 阅读(2694) 评论(0) 推荐(0)
摘要:ORM聚合函数详解-Count: Count :获取指定的对象的个数。示例代码如下: 以上的 result 将返回 Book 表中总共有多少本图书。 Count 类中,还有另外一个参数叫做 distinct ,默认是等于 False ,如果是等于 True ,那么将去掉那些重复的值。比如要获取作者表 阅读全文
posted @ 2019-01-09 21:14 zheng-weimin 阅读(2212) 评论(0) 推荐(0)
摘要:ORM聚合函数详解-aggregate和annotate: aggregate和annotate的区别: 1、aggregate :返回使用聚合函数后的字段和值。2、annotate :在原来模型字段的基础之上添加一个使用了聚合函数的字段,并且在使用聚合函数的时候,会使用当前这个模型的主键进行分组( 阅读全文
posted @ 2019-01-09 20:30 zheng-weimin 阅读(760) 评论(0) 推荐(0)
摘要:ORM聚合函数详解-Avg: Avg:求平均值。比如想要获取所有图书的价格平均值。那么可以使用以下代码实现: 以上的打印结果是: 其中price__avg的结构是根据field__avg规则构成的。如果想要修改默认的名字,那么可以将Avg赋值给一个关键字参数。示例代码如下: 那么以上的结果打印为: 阅读全文
posted @ 2019-01-08 23:23 zheng-weimin 阅读(658) 评论(0) 推荐(0)
摘要:ORM聚合函数详解-准备工作: 如果你用原生SQL,则可以使用聚合函数来提取数据。比如提取某个商品销售的数量,那么可以使用count,如果想要知道商品销售的平均价格,那么可以使用avg。聚合函数是通过aggregate方法来实现的。在讲解这些聚合函数的用法的时候,都是基于以下的模型对象来实现的。 创 阅读全文
posted @ 2019-01-08 22:28 zheng-weimin 阅读(150) 评论(0) 推荐(0)
摘要:ORM查询条件详解-isnull和regex: isnull:根据值是否为空进行查找。示例代码如下: 以上的代码的意思是获取所有发布日期不为空的文章。将来翻译成 SQL 语句如下: regex和iregex: 大小写敏感和大小写不敏感的正则表达式。示例代码如下: 以上代码的意思是提取所有标题以 he 阅读全文
posted @ 2019-01-08 12:53 zheng-weimin 阅读(448) 评论(0) 推荐(0)
摘要:【Django数据库】ORM查询条件详解-date、time、year、week_day等: year:根据年份进行查找。示例代码如下: 以上的代码在翻译成 SQL 语句为如下: month: 同 year ,根据月份进行查找。day:同 year ,根据日期进行查找。week_day:Django 阅读全文
posted @ 2019-01-07 22:58 zheng-weimin 阅读(748) 评论(0) 推荐(0)
摘要:【Django数据库】ORM查询条件详解-range range:判断某个 field 的值是否在给定的区间中。示例代码如下: 以上代码的意思是提取所有发布时间在 2019/1/7 21点 到 22点之间的文章。将翻译成以下的 SQL 语句: 需要注意的是,以上提取数据,不会包含最后一个值。也就是不 阅读全文
posted @ 2019-01-07 21:46 zheng-weimin 阅读(3823) 评论(2) 推荐(0)
摘要:ORM查询条件详解-startswith和endswith: startswith:判断某个字段的值是否是以某个值开始的。大小写敏感。示例代码如下: 以上代码的意思是提取所有标题以 fuck 字符串开头的文章。将翻译成以下 SQL 语句: istartswith: 类似于 startswith ,但 阅读全文
posted @ 2019-01-07 12:44 zheng-weimin 阅读(739) 评论(0) 推荐(0)
摘要:ORM查询条件详解-gt、gte、lt和lte: 1、gt:某个 field 的值要大于给定的值。示例代码如下: 以上代码的意思是将所有 id 大于4的文章全部都找出来。将翻译成以下 SQL 语句: 2、gte:类似于 gt ,是大于等于。 3、lt:类似于 gt 是小于。 4、lte:类似于 lt 阅读全文
posted @ 2019-01-06 20:48 zheng-weimin 阅读(1971) 评论(0) 推荐(0)
摘要:ORM查询条件详解-in和关联模型查询: in:提取那些给定的 field 的值是否在给定的容器中。容器可以为 list 、 tuple 或者任何一个可以迭代的对象,包括 QuerySet 对象。示例代码如下: 以上代码在翻译成 SQL 语句为如下: 实例截图如下: 当然也可以传递一个 QueryS 阅读全文
posted @ 2019-01-06 20:30 zheng-weimin 阅读(868) 评论(0) 推荐(0)
摘要:ORM查询条件详解-contains和Icontains: contains:大小写敏感,判断某个字段是否包含了某个数据。示例代码如下: 在翻译成 SQL 语句为如下: 要注意的是,在使用 contains 的时候,翻译成的 sql 语句左右两边是有百分号的,意味着使用的是模糊查询。而 exact 阅读全文
posted @ 2019-01-06 16:52 zheng-weimin 阅读(1363) 评论(0) 推荐(0)