如何通过Python集合操作提升Django数据库性能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2015个文字,预计阅读时间需要9分钟。
前言:最近有一个新需求:
需求:员工基本信息(记录员工A),10w+某种类型的员工信息(记录员工B),1000+要求在后台(Django Admin)分别展示:
已录入员工B列表、未录入员工B列表、团队
前言最近有个新需求:
- 人员基础信息(记作人员A),10w
- 某种类型的人员信息(记作人员B),1000
要求在后台上(Django Admin)分别展示:已录入A的人员B列表、未录入的人员B列表
团队的DBA提议使用视图可以解决这个问题(不愧是搞数据库的)
PS:起先我觉得Django的Model是直接管理数据库表的,使用Model来映射数据库模型怕是有一定的麻烦,不过查了一下资料发现并不会~
只需要在Model的Meta子类中添加
managed = False即可,同时将db_table属性设置为视图名称
但这项目是Django写的,我认为既然有这么好用的ORM,何必多此一举去用SQL实现功能逻辑呢
于是大手一挥,不行,咱用Python来搞!
粗略实现想想有挺多种方式来实现的,可以在Model中加一个方法,例如is_in_a(),然后在里面判断该人员B是否在人员A中
也可以在admin的配置中增加一个字段~
最终我是在Model中增加了新的方法,当然思路不必局限,Django还是很灵活的。
本文共计2015个文字,预计阅读时间需要9分钟。
前言:最近有一个新需求:
需求:员工基本信息(记录员工A),10w+某种类型的员工信息(记录员工B),1000+要求在后台(Django Admin)分别展示:
已录入员工B列表、未录入员工B列表、团队
前言最近有个新需求:
- 人员基础信息(记作人员A),10w
- 某种类型的人员信息(记作人员B),1000
要求在后台上(Django Admin)分别展示:已录入A的人员B列表、未录入的人员B列表
团队的DBA提议使用视图可以解决这个问题(不愧是搞数据库的)
PS:起先我觉得Django的Model是直接管理数据库表的,使用Model来映射数据库模型怕是有一定的麻烦,不过查了一下资料发现并不会~
只需要在Model的Meta子类中添加
managed = False即可,同时将db_table属性设置为视图名称
但这项目是Django写的,我认为既然有这么好用的ORM,何必多此一举去用SQL实现功能逻辑呢
于是大手一挥,不行,咱用Python来搞!
粗略实现想想有挺多种方式来实现的,可以在Model中加一个方法,例如is_in_a(),然后在里面判断该人员B是否在人员A中
也可以在admin的配置中增加一个字段~
最终我是在Model中增加了新的方法,当然思路不必局限,Django还是很灵活的。

