【问题标题】:Django: Model Queryset to Pandas to Django Rest FrameworkDjango:从 Pandas 到 Django Rest 框架的模型查询集
【发布时间】:2019-10-28 15:15:31
【问题描述】:

我正在尝试在我的 Django 项目中完成以下工作流程:

  1. 查询我的数据库
  2. 将返回的查询集转换为 pandas 数据帧,以便执行一些计算和过滤
  3. 将最终数据帧传递给 Django REST API 框架

如果我理解正确,我必须在第 2 步中使用 django-pandas。在第 3 步中使用 Django REST Pandas。 我安装了两者并阅读了文档,但我不知道如何使它工作。

到目前为止,我已经完成了设置我的模型、视图、序列化和 url 以通过 Django Rest 框架呈现原始查询集。

如果有人能给我关于如何将 pandas 集成到这个工作流程中的提示,我们将不胜感激。

我的 models.py 文件

from django.db import models

class Fund(models.Model):
    name = models.CharField(max_length=100)
    commitment_size = models.IntegerField(blank=True, null=True)
    commitment_date = models.DateField(blank=True, null=True)

    def __str__(self):
        return self.name

我的views.py文件

from rest_framework import generics
from rest_framework.views import APIView

from pages.models import Fund
from .serializers import FundSerializer

class FundAPIView(generics.ListAPIView):
    queryset = Fund.objects.all()
    serializer_class = FundSerializer

我的 serializers.oy 文件

from rest_framework import serializers

from pages.models import Fund

class FundSerializer(serializers.ModelSerializer):
    class Meta:
        model = Fund
        fields = ('name', 'commitment_size', 'commitment_date')

【问题讨论】:

标签: django pandas django-rest-framework django-pandas


【解决方案1】:

所以我想通了。首先需要安装django-pandas和django rest framework(但不需要安装django REST pandas)

models.py 和 serializers.py 文件与上面相同,但视图文件不同

from rest_framework.views import APIView
from rest_framework.response import Response

from django_pandas.io import read_frame   # Import django_pandas.io read frame

from pages.models import Fund
from .serializers import FundSerializer

class TestData(APIView):
    authentication_classes = []
    permission_classes = []

    def get(self, request, format=None):
        data = Fund.objects.all()        # Perform database query
        df = read_frame(data)            # Transform queryset into pandas dataframe 
        df['testcolumn'] = "testdata"    # Perform some Pandas Operation with dataframe
        return Response(df)              # Return the result in JSON via Django REST Framework

【讨论】:

    猜你喜欢
    • 2015-05-08
    • 2016-01-25
    • 2014-09-19
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2022-01-25
    相关资源
    最近更新 更多