Django:SQL方式(即使用注释、聚合、子查询、when、case、window等)与python方式
Sql方式意味着使用注释、聚合、子查询、时间、大小写、窗口等,即从Sql获取所有额外的计算列 到目前为止,如果我想从每一行的数据中获得一些附加信息,比如计算某物等,我通常会在queryset中获取表,并在每个对象上循环,然后将所需结果存储在DICT列表中,并将其传递给模板。当然,我使用预取是为了避免N+1查询 但自从django 1.11以来,我们可以使用sql(即使用注释、聚合、子查询、when、case、window等)而不使用python以更具表现力的方式完成同样的事情 缺点: 我发现使用sql方式而不是python方式的一个缺点是调试 我必须对每个queryset对象的数据进行复杂的计算。这样我可以一步一步地检查 如果我用sql的方式做,我只能看到最终结果,但无法跟踪步骤 优点: 我没有试过,但听说速度很快 目前,我的大多数sql只需不到100毫秒,大部分时间都在dom加载中。所以,通过使用sql方式,它将以任何方式帮助我Django:SQL方式(即使用注释、聚合、子查询、when、case、window等)与python方式,django,Django,Sql方式意味着使用注释、聚合、子查询、时间、大小写、窗口等,即从Sql获取所有额外的计算列 到目前为止,如果我想从每一行的数据中获得一些附加信息,比如计算某物等,我通常会在queryset中获取表,并在每个对象上循环,然后将所需结果存储在DICT列表中,并将其传递给模板。当然,我使用预取是为了避免N+1查询 但自从django 1.11以来,我们可以使用sql(即使用注释、聚合、子查询、when、case、window等)而不使用python以更具表现力的方式完成同样的事情 缺点: 我发现使用
我很感激Django创建了更多的函数,这些函数有助于以表达的方式编写sql。可能与ok重复,我将根据这个答案进行尝试。它说,对于报告大数据,使用sql;对于创建、更新和删除,使用orm。此外,我想知道,如果使用sql方式,dom内容加载时间是否会改变。我的2美分:如果这是一条关键路径,而您不确定,请对其进行配置。