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

    05.Django基础五之django模型层(一)单表操作

    ,当只有一条数据更新时推荐使用此方法,另外此方法还有一个好处,我们接着往下看 具有auto_now属性字段的更新 我们通常会给表添加三个默认字段 - 自增ID,这个django已经默认加了,就像上边的建表语句...('u_id',distinct=True)).filter(uid__gt=1) # SELECT u_id, COUNT( DISTINCT ui_id) AS `uid` FROM UserInfo...('nid').distinct() # select distinct nid from userinfo 注:只有在PostgreSQL中才能使用distinct进行去重 def...例如,下面的代码将删除 pub_date 是2005年的 Entry 对象: Entry.objects.filter(pub_date__year=2005).delete()     等学到外键的时候再说...,在 Django 删除对象时,会模仿 SQL 约束 ON DELETE CASCADE 的行为,换句话说,删除一个对象时也会删除与它相关联的外键对象。

    3K10

    Django中ORM操作

    前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb...点到天荒地老 所以可以通过obj.外键.B表的列表跨表操作(注意!!...,外键__外键列,反向是小写的表名 UserInfo.objects.values_list('nid','ug_id','ug__title') 反向连表: 反向操作无非2种方式: 1、通过对象的形式反向跨表...:小写表面 _set().all() 2、通过 value 和 value_list 方式反向跨表:小写表名__字段 小写的表名_set 得到有外键关系的对象 obj = UserGroup.objects.all...().first() result = obj.userinfo_set.all() [userinfo对象,userinfo对象,] 小写的表名 得到有外键关系的列 #因为使用values取值取得是字典的不是对象

    4.8K10

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

    聚合 Django数据库抽象API描述了使用Django查询来添加、删除、查询和修改单个对象的方法。然而,有时需要根据一组对象聚合您想要获得的值。...但是,有时要聚合的值属于所查询模型的关联模型。 在聚合函数中指定聚合字段时,Django允许您在筛选相关字段时使用相同的双下划线符号。Django将处理需要检索和聚合相关值的任何表连接。...如果未指定此类别名,则它将是一个长名称“book__pubdate__min”。) 它不仅用于外键,还用于多对多关系。...应用于公共模型字段的任何过滤器()(或exclude())都将具有约束被认为是聚合的对象的效果。 当使用annotate()子句时,过滤器具有约束注释对象计算的效果。...第一个查询请求具有至少一本得分大于3的书的平均得分。第二个查询仅请求得分超过3的作者书的平均分数。 很难直观地理解ORM如何将复杂的查询集转换为SQL查询。

    2K40

    Mysql基础

    from tab_name -- 其中from指定从哪张表筛选,*表示查找所有列,也可以指定一个列 -- 表明确指定要查找的列,distinct用来剔除重复行...外键约束 创建外键 --- 每一个班主任会对应多个学生 , 而每个学生只能对应一个班主任 ----主表 CREATE TABLE ClassCharger( id TINYINT...) VALUES ("yuan",1); -- 删除居然成功,可是 alvin3显示还是有班主任id=1的冰冰的; -----------增加外键和删除外键--------- ALTER TABLE...classcharger(id); ALTER TABLE student DROP FOREIGN KEY abc; INNODB支持的ON语句 --外键约束对子表的含义: 如果在父表中找不到候选键...- 应匹配行的候选键时,父表的行为取决于:在定义子表的外键时指定的 -- on update/on delete子句 -----------------innodb

    4.2K20

    Django学习笔记之Queryset详解

    ,通过自定义model的instance可以获取外键实体等,它的方法都是记录级方法(都是实例方法,貌似无类方法),不要在里面定义类方法,比如计算记录的总数,查看所有记录,这些应该放在自定义的manager...先filter,然后对得到的QuerySet执行delete()方法就行了,它会同时删除关联它的那些记录,比如我删除记录表1中的A记录,表2中的B记录中有A的外键,那同时也会删除B记录,那ManyToMany....distinct() 对应的SQL分别为 select distinct name from Author 和 select distinct name,email from Author 2.4.6...(*filed) 返回QuerySet 它可以指定返回哪些关联表model instance,这里的field跟filter()中的键一样,可以用双下划线,但也有不同,You can refer to...OneToOne关联及外键对应的是都是关联表的一条记录,如my_entry=Entry.objects.get(id=1),my_entry.blog就是关联表的一条记录的对象。

    2.7K30

    Django-官网查询部分翻译(1.11版本文档)-QuerySet-字段查找-06

    目录 Making queries 进行查询 创建一个对象(一条数据记录) 保存修改的表对象 保存外键字段或多对多字段(ForeignKey or ManyToManyField fields) Retrieving...保存外键字段或多对多字段(ForeignKey or ManyToManyField fields) 外键字段 ForeignKey 更新一个外键字段的写法和普通字段的完全一致,只需要将正确类型的对象分配给相关字段即可...(*fields) 优化相关 .only(*fields) 优化相关 .using(alias) 多个数据库时指定数据库(数据库配置可以配好几个数据库连接) .select_for_update(nowait...用 django 表模型类创建的表会自动加上 app 的前缀(显然这里的 app 叫 blog) lookuptype 查找类型分类整理 此部分为伪代码,仅演示这些字段查询的功能用法以及对应 SQL...--> 推测是 遍历、取值,翻译成取值好像更合适一点) alias 别名 特别点 保存外键字段那里,可以直接给外键对象赋值一个对象(blog 对象 --> blog 属性) cache

    2.9K20

    Django---ORM操作大全

    前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb...---------》数据库里的字段 类实例对应---------》数据库表里的一行数据 obj.id  obj.name.....类实例对象的属性 Django orm的优势: Django的orm操作本质上会根据对接的数据库引擎...','ug_id','ug__title')    #注意正向连表是  外键__外键列 反向是小写的表名 3....小写的表名 得到有外键关系的列 #因为使用values取值取得是字典的不是对象,所以需要 小写表名(外键表)__ v = UserGroup.objects.values('id'...''' #写到此处问题就来了,原来两个外键 对应2张表 2个主键 可以识别男女 #现在两个外键对应1张表 反向查找 无法区分男女了了 # object对象女.U2U.Userinfo.set

    7K100

    MySQL-多表操作

    [UNION [ALL|DISTINCT]SELECT···]; 在上述语法中,UNION是实现联合查询的关键字,ALL和DISTINCT是联合查询的选项,其中ALL表示保留所有的查询结果;DISTINCT...,判断子查询语句返回的数据是否与指定的条件相等或不等,然后根据比较结果完成相关需求的操作。...外键约束 添加外键约束 外键指的是-一个表中引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束, 从而保证数据的一-致性 和完整性。 ➢被引用的表称为主表。...➢具有关联的表中的数据,可以通过连接查询的方式获取,并且在没有添加外键约束时,关联表中的数据插入、更新和删除操作互不影响。...➢对于添加了外键约束的关联表而言,数据的插入、更新和删除操作就会受到一定的约束。 一个具有外键约束的丛表在插入数据时,外键字段的值会受主表数据的约束,保证从表插入的数据必须符合约束规范的要求。

    3.2K20

    Django项目知识点(四)

    本来今天不想发文的,昨天没发,怪不好意思的 django view URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应。...defer() 不加载指定字段 only() 只加载指定的字段 using() 选择数据库 select_for_update() raw() raw() 使用sql 不熟悉SQL的可以跳过该部分...() 如果我要拿这个模型通过外键绑定的另外一个模型,使用select_related course 模型定义了teacher字段绑定teacher模型 course = Course.objects.only...这样就可以引用模型字段值并使用它们执行数据库操作,而无需实际将它们从数据库中拉出到Python内存中 说白了就是我从数据库拿东西,但是有些需要的字段没有,要通过绑定的外键的app的model拿。...banner模型外键绑定news中的title字段,拿出来它叫news__title,我要给它换个名字叫news_title,这就是注释。

    1.6K30

    SqlAlchemy 2.0 中文文档(三十八)

    其他值包括True(强制此列具有自动递增语义以供复合主键使用)、False(此列永远不应具有自动递增语义)和字符串"ignore_fk"(外键列的特殊情况,请参见下文)。...attribute sorted_tables 返回一个按外键依赖顺序排序的Table对象列表。 排序将会先放置具有依赖关系的Table对象,然后才是依赖对象本身,代表着它们可以被创建的顺序。...其他值包括True(强制此列对于复合主键也具有自动递增语义),False(此列不应具有自动递增语义),以及字符串"ignore_fk"(外键列的特殊情况,请参见下文)。...attribute sorted_tables 返回一个按外键依赖顺序排序的Table对象列表。 排序将首先将具有依赖关系的Table对象放置在依赖关系本身之前,表示它们可以被创建的顺序。...这是另一个必须在此之前创建的 Table 对象,或者在此之后删除的对象。 通常,表之间的依赖关系是通过外键对象确定的。然而,对于创建外键以外的其他情况(规则、继承),可以手动建立这样的链接。

    20910

    Django之ORM

    Django官方文档https://docs.djangoproject.com/en/2.1/ref/models/fields/ 3.表与表之间的关联 1.外键 即一对多的关系 school=models.ForeignKey...这里的id是自动创建的,school_id是school添加外键产生的 如果想要与另一张表的其他字段添加外键,需要在加上参数to_filed=’字段名’,同时这个字段必须是unique=True 2.一对一...直接设置外键的id 在student.objects.create中加 school_id=1 通过获取外键对象设置 obj = school.objects.get(name="school1")....num) 拿时外键对象的字段 student1 = student.objects.filter(id=2)[0] print(student1.school.name) 拿多对多关系的字段 因为是多对多关系...使用’__’进行的查找 一对多 school_name为外键对象的字段 school为student表中设置的外键字段 student1=student.objects.filter(id=2).values

    1.1K30
    领券