django的F和Q对象】的更多相关文章

F表达式和Q表达式: # 示例模型如下 class Book(models.Model): """图书模型""" name = models.CharField(max_length=300) pages = models.IntegerField() price = models.FloatField() rating = models.FloatField() author = models.ForeignKey(Author, on_del…
Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个函数,基于所给的参数限制查询的结果,类似MySQL模糊查询中where语句 4 查询集等同select语句 2 查询集 特点: 1 查询集通过调用过滤器方进行查询, 查询集经过过滤器筛选后返回新的查询集,可以链式调用 2 惰性执行 创建查询集不会带来任何数据库的访问直到调用数据库才会访问 返回单个数据查询: get() 返回…
F查询 from django.db.models import F,Q # 当查询条件来自于数据库的某个字段,这个时候就必须使用F # 查询卖出数大于库存数的商品 res = models.Product.objects.filter(maichu__gt=F('kucun')) # 将所有商品的价格提高100块 models.Product.objects.update(price=F('price')+100) # 将所有商品的名字后面加一个爆款后缀 from django.db.mode…
一.F查询 rom django.db.models import F from app01.models import Book Book.objects.update(price=F("price")+20) # 对于book表中每本书的价格都在原价格的基础上增加20元 就这样一条简单的语句就完成了对表中所有商品价格的更新,是不是很方便!如果没有F查询,你首先要获取原价格,再做一个算术运算,然后更新字段.F查询专门对对象中某列值的操作,不可使用__双下划线! 二.Q查询 Q查询可以…
F查询 from django.db.models import F,Q # 1.查询库存数大于卖出数的书籍 res = models.Book.objects.filter(kucun__gt=F('maichu')) print(res) #<QuerySet [<Book: Book object>]> # 2.将所有书的价格提高100 models.Book.objects.update(price=F('price') + 100) """…
F与Q查询 F查询 why?…
一.F 案例每人增加500工资 ORM:UserInfo.objects.filter().update(salary=500) 这不行吧 SQL: update userinfo set salary = salary + 500 因此: F出现 from django.db.models import F ORM:UserInfo.objects.filter().update(salary=F(‘salary’)+500) 二.Q 帮助我们构造搜索条件 UserInfo.objects.f…
第三百零九节,Django框架,models.py模块,数据库操作——F()和Q()运算符:|或者.&并且 F()可以将数据库里的数字类型的数据,转换为可以数字类型 首先要导入 from django.db.models import F from django.shortcuts import render from app1.models import * #导入数据库操作模块 from django.db.models import F #导入F类 #逻辑处理模块 def special(…
Django 08 Django模型基础3(关系表的数据操作.表关联对象的访问.多表查询.聚合.分组.F.Q查询) 一.关系表的数据操作 #为了能方便学习,我们进入项目的idle中去执行我们的操作,通过python manage.py shell 就能进入当前目录下的IDLE,类似于数据库中的python操作 --- import os #导入os ---os.getcwd() #获取当前路径 '/home/pyvip/TK18_07/py_course/hello_django1' ---fr…
F()可以将数据库里的数字类型的数据,转换为可以数字类型 首先要导入 from django.db.models import F from django.shortcuts import render from app1.models import * #导入数据库操作模块 from django.db.models import F #导入F类 #逻辑处理模块 def special(request): #获取yu_wen_lao_shi表里id等于1的那条数据,将shuzi字段的值自身加1…
在Django的模型中F对象与Q对象比较常用的,所以单独说一下: F对象 F对象位于django.dc.models模板下,使用的时候记得首先导入!!! 作用:F对象主要用于当模型的字段A与字段B进行比较的时候,如果A写在了等号的左边,则B 出现在等号的右边,通过F对象进行构造,用于两个列的比较.举个例子: 假设有数据模型类BookInfo,BookInfo中有属性read和commet,我们要找到阅读量(read)比评论量(commet)多的图书 BookInfo.objects.filter…
models.tb.objects.all().using('default'),根据using来指定在哪个库里查询,default是settings中配置的数据库的连接名称. 外话:django中引入现成数据库 Django引入外部数据库还是比较方便的,步骤如下 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自动生成models模型文件 python manage.py inspectdb,执行完这…
前提: app名称为core,models.py 如下: #coding: utf8 import datetime from django.db import models class Order(models.Model): orderid = models.CharField(max_length=64, unique=True) desc = models.CharField(max_length=512) product = models.CharField(max_length=51…
内容简介: 介绍Django中的F和Q作用以及使用方法 一.F介绍 作用:操作数据表中的某列值,F()允许Django在未实际链接数据的情况下具有对数据库字段的值的引用,不用获取对象放在内存中再对字段进行操作,直接执行原生产sql语句操作. 通常情况下我们在更新数据时需要先从数据库里将原数据取出后方在内存里,然后编辑某些属性,最后提交.例如: obj = Order.objects.get(orderid=') obj.amount += 1 obj.order.save() 上述方法生成的sq…
数据查询中万能的下划线基本用法: __contains: 包含 __icontains: 包含(忽略大小写) __startswith: 以什么开头 __istartswith: 以什么开头(忽略大小写) __endswith __iendswith __gt: 大于 __gte: 大于等于 __lt: 小于 __lte: 小于等于 __rang: 范围 models.Book.objects.filter(pub_date__range=('2015-01-01','2016-01-01'))…
Model中的F F 的操作通常的应用场景在于:公司对于每个员工,都涨500的工资.这个时候F就可以作为查询条件 1 2 3 from django.db.models import F models.UserInfo.objects.filter().update(salary=F('salary')+500) # F('salary')就表示salary在这行记录中的值. F的使用场景基本就是这样,比较简单. Model中的Q Q 的操作通常的应用场景在于:构造搜索条件. 普通filter搜…
一.聚合查询 aggregate(*args, **args) 先引入需要的包,再使用聚合查询 #计算所有图书的平均价格 from django.db.models import Avg Book.objects.all().aggregate(Avg('price')) aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典.键的名称是聚合值的标识符,值是计算出来的聚合值.键的名称是按照字段和聚合函数的名称自动生成出来的.如果你想要为聚合值指定一个名…
F查询 Django 提供 F() 来做这样的比较.F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值. 查询书id大于\小于价格的书籍 models.Book.objects.filter(id__gt=F("price")) <QuerySet []> models.Book.objects.filter(id__lt=F("price")) <QuerySet [<Book: 书一>, <B…
1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate(*args,**kwargs) : 通过对QuerySet进行计算 ,返回一个聚合值的字典.其中每一个参数都指定一个包含在字典中的返回值.即在查询集上生成聚合 from django.db.models import Avg,Min,Sum,Max # 从整个查询集生成统计值.比如,你想要计算所有在售书籍的平均价钱.django的查询语法提供了一种方式描述所有图书的集合 Book.obje…
Model中的F F 的操作通常的应用场景在于:公司对于每个员工,都涨500的工资.这个时候F就可以作为查询条件 from django.db.models import F models.UserInfo.objects.filter().update(salary=F('salary')+500) # F('salary')就表示salary在这行记录中的值. F的使用场景基本就是这样,比较简单. Model中的Q Q 的操作通常的应用场景在于:构造搜索条件. 普通filter搜索条件支持三…
核心知识点: 1.明白表之间的关系 2.根据关联字段确定正反向,选择一种方式 在Django的ORM种,查询既可以通过查询的方向分为正向查询和反向查询,也可以通过不同的对象分为对象查询和Queryset查询. 下面会一一进行讲解,首先给出表结构对应关系,以及表格中的数据: from django.db import models # Create your models here. class Book(models.Model): title = models.CharField(max_le…
一.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(model)间关联字段的名称,直到最终链接到你想要的model 为止. 核心得学会通知ORM引擎什么时候,join哪张表 join看似复杂,实则最简单.因为把字段列出来之后,就相当于单表操作了!想怎么取值都可以! 正向查询按字段,反向查询按表名小写用来告诉ORM引擎join哪张表 返回值是QuerySet…
一.创建表 创建四个表:书籍,出版社,作者,作者详细信息 四个表之间关系:书籍和作者多对多,作者和作者详细信息一对一,出版社和书籍一对多 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany("要绑定关系的表名")  会自动创建第三张表 创建表 class Book(models.Model): nid = models.AutoFiel…
F/Q查询 测试表 from django.db import models # Create your models here. class MyCharField(models.Field): def __init__(self,max_length,*args,**kwargs): self.max_length = max_length super().__init__(max_length=max_length,*args,**kwargs) def db_type(self, con…
#F与Q查询 #*************************** F 查询 ******************** # F 查询数据库中的其他字段!!! #1.查询库存数大于卖出数的书籍 from django.db.models import F res=models.Books.objects.filter(kucun__gt=F('maichu')).values('title') print(res) #结果:<QuerySet [{'title': '西游记2'}]> #2.…
models.py: from django.db import models # 出版社 class Publisher(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64, null=False, unique=True) def __str__(self): return "<Publisher object: {}>".format(…
F与Q 查询 class Product(models.Model): name = models.CharField(max_length=32) #都是类实例化出来的对象 price = models.DecimalField(max_digits=8,decimal_places=2) sell_out = models.IntegerField() stock = models.IntegerField() def __str__(self): return '商品对象的名字:%s'%s…
转自:https://blog.csdn.net/wsy_666/article/details/86692050 一.F对象: 作用:用于处理类属性(即model的某个列数据),类属性之间的比较.使用之前需要先导入:from django.db.models import F例1:查询图书阅读量大于评论量图书信息. BookInfo.objects.filter(bread__gt=F('bcomment')) **例2:**查询图书 阅读量大于2倍评论 量图书信息. BookInfo.obj…
django之跨表查询及添加记录 一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many). 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建多对多的关系:ManyToMany(&qu…
返回ORM目录 Django ORM 内容目录 一.F.Q查询 二.事务 三.only与defer 一.F.Q查询 """ Product表中的数据: 1 橡皮 2 2000 3000 2 铅笔 3 12 200 3 华为保时捷 18000 30 23 4 索尼A6000 3680 24 12 """ # 查询卖出数大于50的商品 # res = models.Product.objects.filter(maichu__gt=50) # <…