Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:SQL方式(即使用注释、聚合、子查询、when、case、window等)与python方式_Django - Fatal编程技术网

Django:SQL方式(即使用注释、聚合、子查询、when、case、window等)与python方式

Django:SQL方式(即使用注释、聚合、子查询、when、case、window等)与python方式,django,Django,Sql方式意味着使用注释、聚合、子查询、时间、大小写、窗口等,即从Sql获取所有额外的计算列 到目前为止,如果我想从每一行的数据中获得一些附加信息,比如计算某物等,我通常会在queryset中获取表,并在每个对象上循环,然后将所需结果存储在DICT列表中,并将其传递给模板。当然,我使用预取是为了避免N+1查询 但自从django 1.11以来,我们可以使用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。

可能与ok重复,我将根据这个答案进行尝试。它说,对于报告大数据,使用sql;对于创建、更新和删除,使用orm。此外,我想知道,如果使用sql方式,dom内容加载时间是否会改变。我的2美分:如果这是一条关键路径,而您不确定,请对其进行配置。