当前位置: 首页 > 知识库问答 >
问题:

DRF分页自定义响应没有模型APIView

潘嘉佑
2023-03-14

您好,我在Django中有一个项目,它对不同的数据库执行多个查询,并在多个endpoint中返回它们,为此我使用Pandas和DRF(APIViews)。

当响应很长,逻辑上服务器运行内存溢出时,问题就出现了,我知道我需要分页结果,但我没有找到方法,因为我不使用模型或序列化器,我用熊猫做原始查询进行查询。

有没有办法像我这样分页结果?

我留下了一些代码片段。

class AffiliateAPIView(APIView):
    permission_classes = (IsAuthenticated,)  
    def get(self, request):
        insurance = self.request.query_params.get('insurance', None)
        emergensys_df = pd.read_sql_query(general_attention(insurance), engine())
        return Response(emergensys_df.to_dict(orient='records'))

共有1个答案

子车鸿运
2023-03-14

您应该实现流式响应。Django对此有StreamingHttpResponse:https://docs.djangoproject.com/en/3.2/ref/request-response/#streaminghttpresponse-对象基本上,您应该执行以下操作:

  • 创建一个生成器,该生成器使用LIMITOFFSETSQL运算符从数据库中获取数据,对其进行处理,并按块返回。
  • 创建并返回StreamingHttpResponse并将生成器传递给它,就像:return StreamingHttpResponse(您的\u生成器)
 类似资料:
  • 您好,我正在尝试将分页添加到一个页面模板中,我正在使用该模板来显示自定义帖子类型。我已经环顾四周几个小时了,但还没有找到一套清晰的说明。 下面是我页面模板php文件中的所有代码。如果有人能给我指出正确的方向,我将不胜感激。 我将感谢任何关于如何添加代码的帮助 我可以通过直接链接推荐书/page/2/访问第2页。但是在第1页上,导航没有出现。 第1页: 第2页:

  • 如果您是一位经验丰富的ML开发人员,而且ML Kit的预训练的模型不能满足您的需求,您可以通过ML Kit使用定 的TensorFlow Lite模型。 使用Firebase托管您的TensorFlow Lite模型或将其与您的应用程序打包在一起。然后,使用ML Kit SDK来使用您的自定义模型的最佳版本构建应用。如果您使用Firebase托管您的模型,ML Kit会自动更新您的用户的所用版本。

  • 我的股票与分页我尝试了很多解决方案,但没有工作!我使用WordPress5.4。我的网站是一个单页网站,当然我想在索引中使用它。php 这是我的密码: 很抱歉,如果这是一个高度重复的问题——我发现的其他修复方法都不适用于我。请有人告诉我问题在哪里? 谢谢! 编辑1我尝试了这个,它也不工作!

  • 我有一个自定义的文章类型“author”,我已经成为了归档作者。php,这里是我使用wp pagenavi插件时遇到的问题,我在这个自定义帖子类型中有15篇帖子,我已经使用了

  • 我有一个与自定义分类法(支持)相关的自定义帖子类型(问题) 在我的主题/分类中。php我有以下代码: 这意味着我针对“支持”分类法的特定模板文件。 在分类法模板文件中,我进行了自定义查询: 我有大约11篇文章,第1页显示了前5篇文章,但问题是没有显示分页。 有什么想法吗?非常感谢。

  • 让我们假设使用相同的登录表单,但现在我们还要测试我们的密码在其中某处有感叹号。 app/login-form.component.ts 一个简单的函数接受实例,并返回null如果一切都很好。 如果测试失败,它返回一个具有任意命名属性的对象。 属性名称将用于.hasError()测试。 app/login-form.component.ts <!-- ... --> <div [hidden]="!