返回顶部
首页 > 资讯 > 后端开发 > Python >Django 外键查询的实现
  • 495
分享到

Django 外键查询的实现

2024-04-02 19:04:59 495人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录一、一对多二、多对多(返回的内部是相关类的对象的查询集)创建三张表,详情如下: class Publish(models.Model): id = models.A

创建三张表,详情如下:


class Publish(models.Model):
    id = models.AutoField(primary_key=True, auto_created=True)
    pname = models.CharField(max_length=40)
    city = models.CharField(max_length=50)

    def __str__(self):
        return self.pname

class Author(models.Model):
    id = models.AutoField(primary_key=True, auto_created=True)
    aname = models.CharField(max_length=10)

    def __str__(self):
        return self.aname

class Book(models.Model):
    id = models.AutoField(primary_key=True, auto_created=True)
    bname = models.CharField(max_length=30)
    price = models.IntegerField()
    publish = models.ForeignKey(Publish, on_delete=models.CASCADE)
    author = models.ManyToManyField(Author)

    def __str__(self):
        return self.bname

一、一对多

通过类属性进行查询


# get方法的到的结果是一个对应类的对象
# 查询某本书的出版社名字
book = Book.objects.get(id=1)
book.publish.pname

# 查询某出版社下面有多少本书
# 此处的book是Book这张表的表名的小写(必须是小写)加上_set
pub = Publish.objects.get(id=1)
pub.book_set.all()

通过Django的双下划线(__)来进行查询


# 通过出版社的相关信息进行查询某一本书
Book.objects.filter(publish__city='北京')
Book.objects.filter(publish__id=1)

# 通过书籍的相关信息进行查询其出版社
# 此处的book是Book这张表的表名的小写(必须是小写)
Publish.objects.filter(book__id=1)

# 在values以及values_list中使用(必须加引号)
# 通过书籍的相关信息进行查询其出版社
# values得到的结果是一个内部是字典的查询集
Book.objects.filter(id=1).values('publish__pname')
# values__list得到的结果是一个内部是元祖的查询集
Book.objects.filter(id=1).values_list('publish__pname')

# 通过出版社的相关信息进行查询某一本书
 Publish.objects.filter(id=1).values('book__bname')
 Publish.objects.filter(id=1).values_list('book__bname')

二、多对多(返回的内部是相关类的对象的查询集)

在使用多对多时,DjanGo会自动创建额外的一张表来存储其相对关系。这里额外的一张表的表名是blogs_book_author。


# 通过作者的相关信息查询其某一本书(返回的内部是Book的对象的查询集)
Book.objects.filter(author__id=1)
Author.objects.filter(id=1).values('book')

# 查询某一本书对应的作者有哪些(返回的内部是Author的对象的查询集)
Author.objects.filter(book__id=1)
Book.objects.filter(id=1).values('author')

到此这篇关于Django 外键查询的实现的文章就介绍到这了,更多相关Django 外键查询内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网! 

--结束END--

本文标题: Django 外键查询的实现

本文链接: https://lsjlt.com/news/128387.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Django 外键查询的实现
    目录一、一对多二、多对多(返回的内部是相关类的对象的查询集)创建三张表,详情如下: class Publish(models.Model): id = models.A...
    99+
    2024-04-02
  • django外键关联查询的方法是什么
    在Django中,外键关联查询可以使用以下几种方法: 使用双下划线()进行跨表查询。 例如,如果有一个模型A和一个外键关联的模型...
    99+
    2023-10-24
    django
  • django模型查询操作的实现
    目录1、创建对象2、保存ForeignKey和ManyToManyField字段3、检索对象跨越多值的关系查询使用F表达式引用模型的字段:4、缓存和查询集5、使用Q对象进行复杂查询6...
    99+
    2024-04-02
  • django执行原生SQL查询的实现
    目录执行原生 SQL 查询1、执行原生查询1.1 普通查询1.2 将查询字段映射为模型字段1.3 索引查询1.4 将参数传给 raw()2、直接执行自定义 SQL2.1 指定连接数据...
    99+
    2024-04-02
  • mysql如何查询外键约束
    这篇文章主要介绍了mysql如何查询外键约束的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql如何查询外键约束文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • Django 查询数据库返回JSON的实现
    目录返回多条数据返回单个对象和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 返回多条数据 示例 import json from django.http i...
    99+
    2024-04-02
  • django模型的查询操作怎么实现
    本篇内容主要讲解“django模型的查询操作怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“django模型的查询操作怎么实现”吧!目录创建对象保存ForeignKey和ManyToMan...
    99+
    2023-06-20
  • Django的filter查询
    Django的filter查询 name__contains表示精确大小写的模糊查询 使用name__icontains表示忽略大小写 year_count = DownloadFile.objects.filter(date__cont...
    99+
    2023-01-30
    Django filter
  • oracle怎么查询外键所在表
    要查询外键所在的表,可以使用以下SQL查询语句: SELECT UC.CONSTRAINT_NAME AS FORE...
    99+
    2024-04-09
    oracle
  • Mysql基础(四)—— 多表查询 内键外键、union、join、子查询、in/exists
    1. 到底什么是主键,外键? 基本概念: MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。 用于外键关系的字段必须在所...
    99+
    2018-10-28
    Mysql基础(四)—— 多表查询 内键外键 union join 子查询 in/exists
  • 在Django中动态地过滤查询集的实现
    目录简介开始使用数据准备创建视图创建URL创建模板创建客户端脚本结语简介 要建立一个允许过滤和分页的列表页,你必须让一些独立的东西一起工作。Django的对象关系映射器(ORM)和内...
    99+
    2024-04-02
  • Django城市信息查询功能的实现步骤
    目录前言数据准备阶段版本推荐项目实现阶段Django 工程的建立路由的配置及访问添加富文本模型创建城市与省份模型后台管理系统总结前言 基于 Pythgo的 Django 框架,编程实...
    99+
    2024-04-02
  • MySQL之外键、表关系及SQL查询关键字
    一、外键 假设现在我们有一张员工信息表,表的字段如下: id # 主键 name # 姓名 age # 年龄 dep_name # 部门名称 dep_desc # 部门描述 单从数据存储上来看,这个表是没有问题的,但是从程序开...
    99+
    2018-09-24
    MySQL之外键 表关系及SQL查询关键字
  • mysql中怎么创建和查询外键
    本篇内容主要讲解“mysql中怎么创建和查询外键”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中怎么创建和查询外键”吧!一、什么是外键外键是一个表格中的一列或多列,它用于指定这个列或多...
    99+
    2023-07-06
  • mysql查询某个表外键约束的方法
    mysql查询某个表外键约束的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql查询某个表的外键约束的方法:使用...
    99+
    2024-04-02
  • JavaRedisTemplate批量查询指定键值对的实现
    目录一.Redis使用pipeline批量查询所有键值对二.批量获取指定的键值对列表一.Redis使用pipeline批量查询所有键值对 一次性获取所有键值对的方式: private...
    99+
    2024-04-02
  • Django如何实现查询数据库返回JSON
    这篇文章给大家分享的是有关Django如何实现查询数据库返回JSON的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。返回多条数据示例import jsonfrom django.http&nbs...
    99+
    2023-06-20
  • Django城市信息查询功能如何实现
    本文小编为大家详细介绍“Django城市信息查询功能如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Django城市信息查询功能如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言基于 Pythgo...
    99+
    2023-07-02
  • MySQL查询外键约束语句怎么写
    要查询外键约束,可以使用以下语句:SHOW CREATE TABLE table_name;其中,`table_name`是要查询外...
    99+
    2023-10-24
    MySQL
  • MySQL外键级联的实现
    目录简介示例一、首先创建两张表stu,sc二、向两张表插入数据简介 mysql外键起到约束作用,在数据库层面保证数据的完整性。例如使用外键的CASCADE(cascade串联)类型,当子表(例如user_info)关联父...
    99+
    2022-07-28
    MySQL外键级联
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作