【发布时间】:2020-12-12 12:08:41
【问题描述】:
我对编程有点陌生。我们正在使用 React、Redux 和 Django Rest Framework 创建一个应用程序。此应用程序的主要目标是以一种很好且易于理解的方式呈现教育数据。我正在使用Nivo 创建各种图表。现在,我们正在创建一个简单的折线图,以显示每所学校在此处的某个国家考试中达到的分数。 Nivo 需要数据来生成这种 JSON 格式的图表:
[
{
"id": "japan",
"color": "hsl(175, 70%, 50%)",
"data": [
{
"x": "plane",
"y": 52
},
{
"x": "helicopter",
"y": 110
},
{
"x": "boat",
"y": 210
},
]
}
]
我的数据是这样的:
school_id school_type year grade first_application_score second_aplication_score avg
1 public 2015 3 6.5 7.2 6.9
1 public 2016 4 7.9 7.1 7.5
2 private 2015 5 5.5 6.5 6.0
我的问题是:我应该在哪里生成数据来创建图表数据?在我对网络编程的实际理解水平上,我可以使用以下策略:
- 我可以使用 SQL 在数据库中创建新表:这些表会有 x 和 y 值,所以 Django 中的 API 不会做任何计算,只发送从数据库发送的静态数据;李>
- 我可以在 Django 中完成: Django 将接收如上表所示的数据,处理所有内容并通过 API 以正确格式返回数据,以便 Nivo 生成图表;
- 我可以在 React-Redux 中做到这一点: 通过 Django API 发送的数据将与上表完全相同,我将其传递给一些 Redux 中间件,这些中间件会改变一切,React 会生成图表。
什么是最好的策略?什么可能是最糟糕的策略,为什么?哪种选择会成为最一致的方法?为什么?
【问题讨论】:
-
请记住不断变化的要求:您现在可能仅将数据用于特定图表,但将来您或其他人可能希望将其用于其他目的,例如好吧。如果你的后端专门为特定的前端组件格式化数据,那么你就有点麻烦了。
-
您要根据以上数据创建图表吗?
-
@AkshatZala 是的,我想创建一条历史线,显示某些学校在特定年份获得的分数。基本上,x 轴是年份,y 轴是分数。
标签: python django reactjs redux django-rest-framework