複数のデータをレンダリングできるDjango Api Appを構築したいと考えています。例えば、私のコードを見てみましょう:あなたが見ることができるようにDjango Building A Restful API
urlpatterns = [
url(r'nav-func$', views.FundNavApi.as_view(option='nav_func')),
url(r'fund_nav/(?P<fund_id>[0-9]+)$', views.FundNavApi.as_view(option='fund_nav'))
]
Views.py
class FundNavApi(APIView):
option = 'default'
model_class = NAV
fund_id = None
def get(self, request, format=None):
if self.option == 'nav_func':
res = self.nav_func
print(res)
elif self.option == 'fund_nav':
print(self.kwargs['fund_id'])
return Response("Hi")
@staticmethod
def nav_func():
querysets = NAV.objects.filter(fund__account_class=0, transmission=3).values(
'valuation_period_end_date').annotate(
total_nav=Sum(F('outstanding_shares_par') * F('nav'))).order_by('valuation_period_end_date')
df = read_frame(querysets, coerce_float=True)
df.loc[:, 'valuation_period_end_date'] = pd.to_datetime(df.valuation_period_end_date)
df.loc[:, 'timestamp'] = df.valuation_period_end_date.astype(np.int64) // 10 ** 6
df.loc[:, 'total_nav'] = df.total_nav
df = df.round(0)
print(df[['timestamp', 'total_nav']].values.tolist())
return df[['timestamp', 'total_nav']].values.tolist()
、私は同じmodel
を使用しますが、異なるurl
に基づいてデータを操作します。したがって、controller
に何をレンダリングするかを伝える方法としてoption=''
パラメータを使用します。だから私は2つの質問があります:
- 正しいアプローチですか?これは、1つのタイプのモデルを使用している間にさまざまなデータをレンダリングするAPIを構築するという点で、プロフェッショナルが行うことですか?