当前位置: 代码迷 >> python >> 将业务工作流与Django应用程序分开
  详细解决方案

将业务工作流与Django应用程序分开

热度:45   发布时间:2023-07-16 10:39:23.0

我有一个Django应用,需要在其中遵循不同的工作流程以进行不同的输入。

我在POST端点上收到带有数据有效负载的输入参数。 根据输入,我需要触发不同的功能,相应地处理数据,最后将其保存在数据存储中。

一种选择是编写if-else ,但是随着代码的增长,编写if-else很难维护。

例如:

If input1, then function1(), process1(), save1()

elif input2, then function2(), process2(), save2()

我已经研究过 , 和许多其他业务规则库,但是不确定推荐的方法。

如果有人可以为我提供一个虚拟的例子或一个开放源代码的项目,我可以通过它理解其实现,那将很有帮助。

我认为您不是在构建庞大的应用程序,对吗?

因此,要专注于根要求,即针对不同输入的不同过程,可以创建从基础对象Processor扩展的多个对象,例如AppleProcessorOrangeProcessor 它们都共享相同的接口。

然后在您的后勤部分,您可以创建一个类似于以下内容的字典:

processors = {"Apple": AppleProcessor, "Orange": OrangeProcessor}

然后很容易使用它:

processor = processors.get(input)
processor.process(*some_needed_args, **some_needed_kwargs)
result = processor.get_result()

这只是一个简单的解决方案,如果您有更多的限制,它可能会变得更加复杂。

  相关解决方案