首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Django 模型层之多表操作

(name='Yven') hwt = models.Author.objects.get(name='hwt') # 绑定多对多关系 # add可以传递对象,可以传递id,也可以传递*列表:(*...[yven,hwt]) book.authors.add(yven,hwt) #多对多关系其他常用API: # 将某个特定的对象从被关联对象集合中去除,可以传递对象,可以传递id,也可以传递*列表:...,列表内可以是对象,也可以是id book.authors.set() 三.基于对象的跨表查询 一对一查询 正向查询(字段:authordetail) # 查询作者姓名为Yven的手机号 yven =...所有Django为我们提供了F表达式来完成这类操作 导入包: from django.db.models import F :查询comment_num数量大于read_num的书籍 models.Book.objects.filter...'AND'的,如果需要执行复杂的查询,就需要使用Q对象 导入包:from django.db.models import Q 可以使用"&"或者"|"或者"~"来组合Q对象,分别表示与,或,非逻辑 :

1.3K20

django_2

要求 修改数据库 Django shell 数据级联(一对多) 元信息 定义字段 模型过滤 创建对象4种方式 查询过滤器 获取单个对象 字段查询 时间 聚合函数 跨关系查询 F对象 Q对象...示例 ·grade.students ·访问id ·格式 ·对象.属性_id ·示例 ·student.sgrade_id 6.模型过滤查询Django默认通过模型的...Django有两种过滤器用于筛选记录: filter:返回符合筛选条件的数据集 exclude :返回不符合筛选条件的数据集 链式调用: 多个filter和exclude可以连接在一起查询 Person.objects.filter...查询集可以有多个过滤器。...过滤器:过滤器就是一个函数,基于所给的参数限制查询集结果,返回查询集的方法称为过滤器。 查询经过过滤器筛选后返回新的查询集,所以可以写成链式调用。

3.6K30

Django模型model

: 根据对象的类型生成数据库表结构 将对象、列表的操作,转换为sql语句 将sql查询到的结果转换为对象、列表 Django的模型包含存储数据的字段和约束,对应着数据库唯一的表 ORM.png 2....模型类的查询 查询集表示从数据库获取的对象集合 查询集可以含有零个、一个或多个过滤过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句...接下来主要讨论如下知识点 查询集 字段查询:比较运算符,F对象,Q对象(1)模型类查询集合 在管理器上调用过滤器方法会返回查询查询集经过过滤器筛选后返回新的查询集,因此可以写成链式过滤 惰性执行:...timedelta()进行运算 list.filter(update__lt=F('update') + timedelta(days=1)) (3)Q对象 过滤器的方法关键字参数查询,会合并为...And进行 需要进行or查询,使用Q()对象 Q对象(django.db.models.Q)用于封装一组关键字参数,这些关键字参数与“比较运算符”的相同 from django.db.models

11910

Django】 开发:静态文件,应用和模型层

静态文件 1.什么是静态文件 不能与服务器端做动态交互的文件都是静态文件 :图片,css,js, 音频,视频,html 文件 (部分) 2.静态文件配置 在 settings.py 配置一下两项内容...’ 值 例如 : ‘APP_DIRS’: True 应用下templates 和 外层templates 都存在时,django得查找模板规则: 优先查找外层templates目录下的模板 INSTALLED_APPS...ORM 缺点 对于复杂业务,使用成本较高 根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 在映射过程中有性能损失....auto_now_add: 当对象第一次被创建时自动设置当前时间 (取值:True/False)。 default: 设置当前时间 (取值:字符串格式时间: ‘2019-6-1’)。....) # objects 是管理器对象 创建数据对象 Django 使用一种直观的方式把数据库表的数据表示成Python 对象 创建数据每一条记录就是创建一个数据对象 MyModel.objects.create

1.8K20

【Python全栈100天学习笔记】Day41 Django深入理解框架

查询所有对象。...说明2:查询多个对象的时候返回的是QuerySet对象,QuerySet使用了惰性查询,即在创建QuerySet对象的过程不涉及任何数据库活动,等真正用到对象时(求值QuerySet)才向数据库发送SQL...on_delete:外键关联的对象被删除时对应的动作,可取的值包括django.db.models定义的: CASCADE:级联删除。...index_together 设定一起建立索引的多个字段名 verbose_name 为对象设定人类可读的名称 verbose_name_plural 设定对象的复数名称 查询参考 字段查找可以用的条件...:基于like的模糊查询 in:集合运算 gt / gte / lt / lte:大于/大于等于/小于/小于等于关系运算 range:指定范围查询(SQL的between…and…) year / month

2.2K30

Django】聚合在Django的详细解析以及运用在企业级项目里的方法

聚合 Django数据库抽象API描述了使用Django查询来添加、删除、查询和修改单个对象的方法。然而,有时需要根据一组对象聚合您想要获得的值。...Django查询语法提供了一种描述所有藏书的方法。 传递给聚合()的参数描述了要计算的聚合值。在此示例,将计算Book模型上价格字段的平均值。...应用于公共模型字段的任何过滤器()(或exclude())都将具有约束被认为是聚合的对象的效果。 当使用annotate()子句时,过滤器具有约束注释对象计算的效果。...在第一个查询,注释优先于过滤器,因此过滤器不会影响注释。Distinct=True用于避免查询错误。 第二个查询查询每个出版商得分超过3的图书数量。...过滤器优先于注释,因此过滤器限制了计算注释时要考虑的对象。 第一个查询请求具有至少一本得分大于3的书的平均得分。第二个查询仅请求得分超过3的作者书的平均分数。

2K40

Django学习笔记之Django ORM Aggregation聚合详解

在当今根据需求而不断调整而成的应用程序,通常不仅需要能依常规的字段,字母顺序或创建日期,来对项目进行排序,还需要按其他某种动态数据对项目进行排序。Djngo聚合就能满足这些要求。...但是第一个查询的注解包含其该出版商发行的所有图书的总数;而第二个查询的注解只包含出版过好书的出版商的所发行的好书(评分大于3分)总数。在第一个查询,注解在过滤器之前,所以过滤器对注解没有影响。...在第二个查询过滤器在注解之前,所以,在计算注解值时,过滤器就限制了参与运算的对象范围 order_by() 可以根据聚合值进行排序 >>> Book.objects.annotate(num_authors...=Count('authors')).order_by('num_authors') values() 通常,注解annotate是添加到每一个对象上的,一个执行了注解操作的查询集 QuerySet 所返回的结果...但是,如果使用了values()从句,它就会限制结果列的范围,对注解赋值的方法就会完全不同。

1K20

Python Day16 Django

详情请参考 QueryDict 对象 request.POST 一个类似于字典的对象,如果请求包含表单数据,则将这些数据封装成 QueryDict 对象。...如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。...有了这个令牌后这个网页再提交POST请求时web服务器会做验证,之后才会通过 自定义过滤器和标签 在settings的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag...在app创建templatetags模块(模块名只能是templatetags) 建任意 .py 文件,:my_filters_tags.py from django import template...API 查询记录API(QuerySet) 从数据库查询出来的结果一般是一个集合,这个集合叫做 QuerySet all(): 查询所有结果 Returns a new

1.9K10

Python进阶29-ORM介绍

表的关联字段,从author表查询到authordetail表就叫做正向查询 反向查询:反过来,从authordetail表查询到author表,就是反向查询 一对一查询 正向查询字段,反向查询表名小写...表,就是反向查询 正向查询字段,反向查询表名小写_set.all() ---- 需求:查询红楼梦这本书出版社邮箱 正向查询 import os if __name__ == '__main__...表里面有跟author表的关联字段,从book表查询到author表就叫做正向查询 反向查询:反过来,从author表查询到book表,就是反向查询 正向查询字段,反向查询表名小写_set.all...正向:正向查询字段 反向查询:反向表名小写_set.all() 4******基于对象查询,多次查询(子查询) 打印Django查询数据的SQL语句...在上面所有的例子,我们构造的过滤器都只是将字段值与某个常量做比较。

4.4K10

Django 系列博客(十三)

Django 系列博客(十三) 前言 本篇博客介绍 Django 的常用字段和参数。 ORM 字段 AutoField int 自增列,必须填入参数 primary_key=True。...当 model 如果没有自增列,则会自动创建一个列名为 id 的列。 IntegerField 一个整数类型,范围在-2147483648 to 2147483647。...bigint存储,ORM获取的值为datetime.timedelta类型 FloatField(Field) - 浮点型 DecimalField(Field) - 10 进制小数 - 参数:...一对一的关联关系多用在当一张表的不同字段查询频次差距过大的情况下,将本可以存储在一张表的字段拆开放置在两张表,然后将两张表建立一对一的关联关系。...在数据库通过第三张表来建立关联关系。 to 设置要关联的表 related_name 反向查询时,使用的字段名,用于代替原反向查询时的'表名_set'。

1.1K30

django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)

网站:http://python.usyiyi.cn/django/index.html 聚合 Django数据库抽象API描述了使用Django查询来增删查改单个对象的方法。...使用annotate() 子句时,过滤器有限制注解对象的作用。...但是第一个查询的注解包含其该出版商发行的所有图书的总数;而第二个查询的注解只包含出版过好书的出版商的所发行的图书总数。 在第一个查询,注解在过滤器之前,所以过滤器对注解没有影响。...在第二个查询过滤器在注解之前,所以,在计算注解值时,过滤器就限制了参与运算的对象范围。 order_by() 注解可以用来做为排序项。...但是,如果使用了values()子句,它就会限制结果列的范围,对注解赋值的方法就会完全不同。

1.6K30

Django篇(二)

更多模型字段,请参考Django官方文档。写的明明白白。 查询 我们在Django通过操作模型类去做增删改查,sql语句那么多,我们同样可以进行增删改查。 其中最复杂的也就是查询了。...查询函数 我们在Django通过:模型类.objects属性调用以下函数来进行查询 get: 返回表满足条件的一条数据,有且只能有一条,查询出多条会报异常。 查询不到数据也会报异常。...Q对象 以上我们都是单个条件进行查询,那如果多个条件呢? 我们可以在上面获取的对象再次进行筛选,也就是注意中说的那句话,但是很麻烦。 因此Django为我们提供了Q模块来帮助我们多条件查询。...F对象 导入F对象: from django.db.models import F 查询id大于年龄(age)的人 student.objects.filter(id__gt=F('age')) 聚合函数...过滤查询集实例 如果我们在models.py创建一个模型: # 创建stuinfo表 class stuinfo(model.Model): # name 字符串类型 最大长度为20

1.4K20

Django教程 —— 初步完善图书管理系统

引言 在 Django模型设计 我们只设计了一个BookInfo模型类,内容好单调,接下来我们初步完善一下BMSTes图书管理系统。...自定义后台管理 模型设计好了,接下来就是在 admin.py 下注册模型了,在注册模型,我新增了 inlines 、list_per_page 、search_fields属性 inlines: 用于嵌入编辑关联的对象...,属性设置在 一对多 模型(表)关系的 一 。...extra: 嵌入编辑子对象的个数 list_per_page: 数据分页,每页的数据个数 search_fields: 查询字段 # -*- coding:utf-8 -*- """ @Author...图书类型的分页效果图 图书信息的过滤效果图 嵌入编辑关联的对象(堆放式) 在编辑图书类型的时候,会在下面根据 extra 属性值内嵌入关联的对象(图书信息)的个数 嵌入编辑关联的对象

95021
领券