首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django自关联实现多级联动查询实例

1 问题引出 我们在开发网站的时候可能会遇到这种情况,多个字段之间有一定的关联性,比如省市县,选择,之后下一个选择框的值则为该省的市集合,选择市之后下一个选择框的值为该市的县集合。...一种实现方式是,建立三个模型,用外键一对多方式,显然这样是不太合理的。Django提供了自关联的实现,模型自身关联,即一条数据关联另一条数据。 本文以省市县为案例介绍其具体实现方法。...2 具体实现 2.1 建立数据Model 在model.py中建立数据 class AdressInfo(models.Model): address = models.CharField(max_length...= True, blank = True, verbose_name = ‘自关联') def __str__(self): return self.adress 说明: name :省市县的名字...pro = $('#pro') city = $('#city') dis = $('#dis') // 查询信息 address(0, pro) // 根据查询市信息

2.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    市县三级数据联动 -Java

    市县三级数据联动 需求:实现省市县三级联动问题,责任继续划分,需要Java后端封装省市县三层数据返回给前端。于是乎开始探索之旅。...思索一番后,发现无解,因为这样增加了java和mysql的IO传输,必然会延长整个查询的速度。...尝试二:查询所有的地区信息,通过java来实现分级和封装 /** * @Description -> 市 -> 县 * 由于频繁请求数据库,取得全部省市县数据数据较慢,因此将数据全部取出交给.../** * @Description -> 市 -> 县 * 由于频繁请求数据库,取得全部省市县数据数据较慢,因此将数据全部取出交给JVM进行处理。.../** * @Description -> 市 -> 县 * 由于频繁请求数据库,取得全部省市县数据数据较慢,因此将数据全部取出交给JVM进行处理。

    2.6K20

    mysql分区_MySQL分区分

    mysql中有一种机制是锁定和行锁定,是为了保证数据的完整性。锁定表示你们都不能对这张进行操作,必须等我对表操作完才行。...2、MySQL是将一个大按照一定的规则分解成多张具有独立存储空间的实体表,每个都对应三个文件,MYD数据文件,.MYI索引文件,.frm结构文件。...Mysql分为垂直切分和水平切分,具体区别如下: 垂直切分是指数据表列的拆分,把一张列比较多的拆分为多张 通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张; 把text,blob(...例: 1)创建一个完整 mysql> create database test1; mysql> use test1; mysql> create table member -> ( -> id bigint...#创建两个分结构必须和上面完整的结构一致 mysql> create table tb_member1 like member; mysql> create table tb_member2 like

    10.9K20

    java mysql 分区_mysql分区

    对用户来说,分区是一个独立的逻辑,但是底层由多个物理子表组成。实现分区的代码实际上是对一组底层的句柄对象的封装。 mysql在创建时使用PARTITION BY子句定义每个分区存放的数据。...分区本身也有一些限制,下面是其中比较重要的几点: 1.一个最多只能有1024个分区。 2.在mysql5.1中,分区表达式必须是整数,或者是返回整数的表达式。...在mysql5.5中,某些场景中可以直接使用列进行分区。 3.如果分区字段中有主键或者唯一索引的列,那么所有主键列和唯一索引列都必须包含进来。 4.分区中无法使用外键约束。...update操作 当更新一条记录时,分区层先打开并锁住所有的底层mysql先确定需要更新的记录在哪个分区,然后取出数据并更新,再判断更新后的数据在哪个分区,最后对底层进行写入操作,并对原数据所在的底层进行删除操作...虽然每个操作都有“先打开并锁住所有的底层”,但这并不是说分区在处理过程中是锁住全的。如果存储引擎能够自己实现行级锁,例如innoDb,则会在分区层释放对应锁。

    7.8K10

    MySQL分区

    分区不够的情况下可以使用修改语句添加一个分区: alter table 名add partition(partition 分区名values in(10,11,12)); 代码示例: ?...Mysql的一些优化方式: 根据情况更换适当的数据库引擎,一般最好是使用MyISAM引擎,因为是在内存中所以查询速度要比其他引擎快得多。 一张必须要有主键。...数据量很大的时候就需要建立分区,如果数据量非常的大就需要在分区中建立子分区。...连接查询: 连接查询分为内连接和外连接,外连接又分为右外连接、左外连接和全外连接,不过在mysql里不支持全外连接的写法。...内连接:就是把两张的记录进行连接,因为它们有关系的映射,所以连接在一起方便客户的查看。能够使用内连接将两张有关系映射的的数据符合条件的显示出来,不符合条件的就不显示。

    7.1K20

    MYSQL 清空和截断

    清空和截断 清空:delete from users; 清空只是清空中的逻辑数据,但是物理数据不清除,如主键值、索引等不被清除,还是原来的值。...截断:truncate table users; 截断可以用于删除中 的所有数据。截断命令还会回收所有索引的分配页。...截断的执行速度与不带where子句的delete(删除)命令相同,甚至比它还要快。...delete(删除)一次删除一行数据,并且将每一行被删除的数据都作为一个事务记录日志;而truncate (截断)则回收整个数据页,只记录很少的日志项。...只有的 拥有者可以截断。 另外,truncate之后,如果有自动主键的话,会恢复成默认值。

    5.2K10

    MySQL 临时

    show tables命令不显示临时 临时的数据会在Session意外或主动断开时删除 临时的应用 复杂查询的优化借助临时 分库分查询 分库分中应用临时 分库分就是我们把一个大拆开分到不同的数据库实例上...(比如group by或者join),对中间层的开发能力要求较高 第二种思路是把各个分库拿到的数据,汇总到一个MySQL实例的一个临时中,然后在汇总实例的临时上进行逻辑操作。...MySQL5.6以前,会存放在临时目录下,创建一个相同前缀,以.ibd为结尾的文件用来存放数据 MySQL5.7开始,MySQL引入了一个临时文件空间,专门用来放存放临时文件的数据 参数innodb_temp_data_file_path...MySQL除了维护物理文件,在内存中也要区分不同的,每个对应一个table_def_key: 普通的table_def_key是由库名+名得到,因此无法创建相同的 对于临时,table_def_key...MySQL在记录binlog的时候,会把主库执行这个语句的线程id写到binlog中,备库的同步线程能够知道每个执行语句的主库线程id,通过这个线程id来构造临时的table_def_key(库名+

    6.4K30

    MySQL操作

    创建 1....users 存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是: users.frm:结构 users.MYD:数据 users.MYI:索引 案例二: create...二.查看表结构 首先确定是在哪个数据库中: 查看有哪些: show tables; 查看表的详细信息: desc 名 查看创建时的详细信息: show create table 名;...三.修改结构 在项目实际开发中,经常修改某个的结构,比如字段名字,字段大小,字段类型,的字符集类型,的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改。...四.删除 想要删除users,执行如下语句: drop table users; 五.总结操作 我们这一节所讲的是操作的结构,而不是操作标的内容。

    22750

    MySQL 临时

    MySQL 临时在我们需要保存一些临时数据时是非常有用的。临时只在当前连接可见,当关闭连接时,Mysql会自动删除并释放所有空间。...临时MySQL 3.23版本中添加,如果你的MySQL版本低于 3.23版本就无法使用MySQL的临时。不过现在一般很少有再使用这么低版本的MySQL数据库服务了。...MySQL临时只在当前连接可见,如果你使用PHP脚本来创建MySQL临时,那每当PHP脚本执行完成后,该临时也会自动销毁。...如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时,那么只有在关闭客户端程序时才会销毁临时,当然你也可以手动销毁。...---- 删除MySQL 临时 默认情况下,当你断开与数据库的连接后,临时就会自动被销毁。当然你也可以在当前MySQL会话使用 DROP TABLE 命令来手动删除临时

    4.2K00

    清空与删除mysql

    Mysql清空(truncate)与删除中数据(delete)的区别 为某基于wordpress搭建的博客长久未除草,某天升级的时候发现已经被插入了几万条垃圾留言,如果一条条删除那可真是累人的活。...遂考虑直接进入mysql直接清空或者删除中数据。 本文记录一下这2种操作模式的区别,目标对象是wp_comments,里面的所有留言均是垃圾留言,均可删除。...然后便有了以下2种方式(进入mysql操作界面后): truncate table wp_comments; delete * from wp_comments; 其中truncate操作中的table...这两者都是将wp_comments中数据清空,不过也是有区别的,如下: truncate是整体删除(速度较快), delete是逐条删除(速度较慢)。...如果只需删除中的部分记录,只能使用DELETE语句配合where条件。 DELETE FROM wp_comments WHERE……

    8.1K20

    Python——三级菜单(字典的应用)

    最近几天在做的一个题目: 三级菜单,按、市、县三级做一个查询菜单,要求如下, 1.可逐级查询(比如输入山东,跳出山东所有市,再输入青岛市,可展示青岛所有县) 2.输入b可以返回上一层,比如莱西一级,...直接贴一下网上的答案吧(各省份城市比较多,就随便列级两个直辖市中的一部分市县吧): #!...西城区':{}, '朝阳区':{}, '丰台区':{}, '石景山区':{}, }, '北京市县...elif choice=='q': break else: print('invalid input,try again please') 思路比较清晰,就是将、...既然省市县可以用字典分级录入,那按级别做一个不同位数的键值,也无可厚非。第一级省份4位数键值,市6位,县8位。根据键值去查找上下级。

    1.1K20

    在 PyQt5 中构建「-市-县」级联选择器

    比如在购物平台填写收获地址的时候,进行省市县的选择; 又比如在一些商品分类中的商品大类、商品子类的选择: 可以说,对于一个正常的Web框架而言,级联选择器都是必不可少的组件。...下面,我们就使用 PyQt5 构建一个省市县的级联选择器。...最终的效果如下所示: 三、构建一个桌面应用的级联选择器 准备数据 要实现省市县的级联选择,省市县的数据必不可少,在这里,我们使用的是一个 JSON 格式嵌套的省市县数据,如下图所示: 数据来源于:https...("--请选择") self.province.currentTextChanged.connect(self.slot_province_click) for data...), encoding='utf-8') print(self.data_json) # 初始化UI def init_ui(self): # 选择器

    2.8K20

    MySQLMySQL分库分详解

    因此传统的MySQL单库单架构的性能问题就暴露出来了。而有下面几个因素会影响数据库性能: 1.1 数据量 MySQL单库数据量在5000万以内性能比较好,超过阈值后性能会随着数据量的增大而变弱。...MySQL数据量是500w-1000w之间性能比较好,超过1000w性能也会下降。...库内分只解决了单一数据量过大的问题,但没有将分布到不同机器的库上,因此对于减轻MySQL数据库的压力来说,帮助不是很大,大家还是竞争同一个物理机的CPU、内存、网络IO,最好通过分库分来解决。...另外性能瓶颈限制在单台MySQL的读写性能。 flickr团队使用的一种主键生成策略,与上面的sequence方案类似,但更好的解决了单点和性能瓶颈的问题。...例如1T的数据,网络传输占50MB时候,需要20000秒才能传输完毕,整个过程的风险都是比较高的 对一个很大的进行DDL修改时,MySQL会锁住全,这个时间会很长,这段时间业务不能访问此,影响很大

    10.4K41

    MySQL之间的关系

    之间的关系 1 foreign key 2 则1的多条记录对应2的一条记录,即多对一 利用foreign key的原理我们可以制作两张的多对多,一对一关系 多对多: 1的多条记录可以对应...2的一条记录 2的多条记录也可以对应1的一条记录 一对一: 1的一条记录唯一对应2的一条记录,反之亦然 分析时,我们先从按照上面的基本原理去套,然后再翻译成真实的意义,就很好理解了...1、先确定关系 2、找到多的一方,把关联字段写在多的一方 一对多  多对一或者一对多(左边的多条记录对应右边的唯一一条记录)  需要注意的: 1.先建被关联的,保证被关联的字段必须唯一。...图片 创建 书要关联出版社 被关联的 create table press(id int primary key auto_increment, name char(20)); 关联的 create...用户组,主机 创建三张 -- 用户 create table user (id int primary key auto_increment,username varchar(20) not null

    3.5K10

    2023年版全国省市县区街道行政区划代码整理汇总下载来了

    代码规则 行政区划代码分为6位,9位,12位版 最常见的6位版,格式为AABBCC,代表、市、县区 例如:320206,代表32江苏,3002无锡市,320206惠山区 6位版最常见的应用是身份证号...您身份证的前6位,就是出生地的行政区划代码了 9位版 9位是对6位的扩充,细分到乡镇、街道的编码 他的做法是在原来6位基础上,增加3位街道码 例如:320206003,前6位代江苏无锡市惠山区...最后的003代钱桥街道 12位版 12位是对9位的进一步扩充,精确到社区、村级 这个一般用的比较少,做法是后面再加3位,这里就不啰嗦了 扩展关系 一般用法是6位版 如果要扩充到9位,不足的位数可以补0...表示 比如 320206 代表 江苏无锡市惠山区同时 320206000 也是一样 历年调整 代码有时会发生变化 比如 某某县 改名 某某区 虽然地理范围可能不变 但代码会改变 所以,这个代码每年需要更新...2023年的代码我已经整理好了,我们会在评论区放出 数据来源国家统计局公开信息 整理后收录,共44798条记录 包括省市县区街道4级编码

    5.4K51

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券