如何实现非端点API函数?

时间:2019-10-22 17:17:59

标签: django rest django-rest-framework django-class-based-views

这是一个相当高层次的问题,但我无法在其他地方找到任何能解释它的内容:

我有一个带有端点(GET,POST)的基于django的视图,但是我还有一个不是端点的方法,但是我想将其包含在GET / POST方法中。实施此操作的最佳做​​法是什么?

例如:

class users(APIView):

    def get(self, request):
        # get method
        helperFunction()

    def post(self, request):
        # post method
        helperFunction()

    def helperFunction():
        # not an endpoint

这是做这样的事情的正确方法吗? helperFunction()应该是类之外的独立函数吗?还是应该将非端点方法放在单独的类中?

缺乏特异性的道歉。

1 个答案:

答案 0 :(得分:1)

根据函数使用的数据选择位置。

  1. 是否应处理仅与类相关的数据 实例,那么是的,它属于该类
  2. 如果它应该处理特定于类类型的数据,请将其作为静态方法添加到类中,并使用 您需要处理的具体实例
  3. 是否应处理一组数据集中的数据 类,您可以创建一个抽象类,将其放入 在那里继承所有使用该功能的类,或者 外部(请参阅最后一个选项)

  4. 如果它具有通用目的-例如像这样的时间格式,请将其放入全局空间。现在理想情况下,您想要 有一个单独的文件,所有的东西都堆在那里,它使代码库 易于维护。但实际上,最好保留它 在您的班级所在的文件中(如果使用的其他班级 它在同一个文件中)