Django:积累数据的API



我是python新手,希望用积累的数据实现API。我已经看到了很多关于使用django-rest框架浏览数据库的可能性的信息,但我找不到正确的解决方案来查看分析或汇总的数据。

例如,我有一些新闻文章的数据:

articles: [
{
name: "test 1",
views: 10000
},
{
name: "test 2",
views: 20000
},
{
name: "test 3",
views: 30000
}
] 

我想显示像这样的分析数据

summary: {
name: "articles",
sum_views: 60000,
article_count: 3
}

如果我想使用django和django-rest框架,最佳实践是什么?

将其放在views.py中并覆盖get_queryset方法。

class MyViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MySerializer
def get_queryset(self):
# filter your query set here and return a queryset (not an object)
return queryset

这必须是@Tom Wojcik的评论,但我没有足够的声誉来评论。

如果文章资源路由为"文章/";则总结可以是"/文章/摘要/";

我用SQL解决了这个问题。我已经创建了累积MySQL视图,它可以用Django的常用方式查看。因为在创建MySQL视图之后,您可以在Django中编写一个模型并创建一个Django视图。

为了使MySQL视图独立于系统,我在名为"db_Views.py"的类中编写了一个MySQL创建脚本,该脚本在apps.py文件中实例化

class ArticlesConfig(AppConfig):
"""Standard config module"""
name = 'articles'
def ready(self):
"""Config method if application is ready"""
post_migrate.connect(create_view, sender=self)