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,不要带有其他查询条件,否则会重新查询数据库

 

posted @ 2025-07-31 17:02  10132714  阅读(5)  评论(0)    收藏  举报