第一次工作日常总结

列表使用append添加 和 列表推导式的区别?

使用列表推导式比列表快,列表推导式被编译后的字节执行速度更快。python当然不是一门编译型语言,但是他还是要被解析成二进制的字节码才能被执行,执行他的正是python解释器。

两种方法最大的区别就是在添加元素的部分。

第一种,先要LOAD_ATTR,将append方法加载进来,然后CALL_FUNCTION,也就是执行。

第二种,直接调用了LAST_APPPEND命令添加元素,就是这一个小小的区别,使得列表推导式的速度会更快,因为第一种方法比第二种方法多了一个LOAD_ATTR的过程,要明白,这条命令在每次循环中都会执行,一旦循环的次数多起来,就必然拖慢速度。

 

django的多表联查 

一对一方式 

正向查询: 通过子表查询母表:字表对象.母表表名小写.母表字段名

                     方向从子表查询:子表.objects,get(一对一的字表__母表字段=‘xxx’).子表字段

反向查找:通过母表查询子表:母表对象.子表表名的小写.子表字段名

                  从母表自身直接获取字段:母表.objects.get(子表名小写__子表字段=‘xxx’).母表字段

一对多(外键) 

正向查找: 可通过.属性,访问外键对象

反向查找:主表对象.子表的小写名称_set.查询方法

外键表联合查询:子表对象.母表表名的小写,母表字段名

                              母表.objects.get(子表名__子表字段=‘xxx’).母表字段名

注意:若一个模型有ForeignKey,那么该ForeignKey所指向的外键模型实例可通过一个管理器进行反向查询,返回模型所有的实例。默认情况下,管理器名为xxx_set,xxx是源模型的小写名称。若FK字段设置related_name,则不可以使用xxx_set的方式

多对多:

子表查询母表(正向) 

子表查询母表:子表对象.子表多对多字段.过滤条件

反向查找:

母表查询子表:母表对象.filter(子表表名小写__子表字段名='过滤条件')

 

                       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值