django orm优化查询
1. 查看django操作数据库的日志
# settings文件中的logging配置如下代码,django的DEBUG修改为True # 记录器中添加 'loggers': { 'django.db.backends': { 'handlers': [你自己配置的handlers,登记要调整为debug] 'level': 'DEBUG', 'propagate': False # 这里如果配置为True,日志文件中可能会将同样的日志打印两次 } }
2. 多对多关系,一次性将关联表的数据取出,只查询一次数据库
user_qts = User.objects.filter(条件).prefetch_related('role').all() # 使用查询出来的role数据时需要注意只能使用以下方式,不然会造成重新查询数据库 for user in user_qts: user_roles = user.role.all() # 直接使用all,不要带有其他查询条件,否则会重新查询数据库