Django: модель Queryset для панд в Django Rest Framework - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь выполнить следующий рабочий процесс в моем проекте Django:

  1. Запрос к моей базе данных
  2. Преобразование возвращенного набора запросов в фрейм данных pandas для выполнения некоторых вычислений и фильтрации
  3. Передайте окончательный фрейм данных в Django REST API Framework

Если я правильно понимаю, мне нужно использовать django-pandas для шага 2. и Django REST Pandas для шага 3. Я установили прочитайте документ, но я понятия не имею, как заставить его работать.

То, чего я достиг на данный момент, - это настроить мою модель, представления, сериализацию и URL-адреса так, чтобы исходный набор запросов отображался с помощью Django Rest Framework.

Если кто-нибудь может дать мне подсказку оКак интегрировать панд в этот рабочий процесс, было бы очень полезно.

мой файл 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

мои сериализаторы.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')

1 Ответ

0 голосов
/ 30 октября 2019

Так что я понял это. Во-первых, вам нужно установить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...