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

Python 将业务工作流与Django应用程序分离,python,django,django-viewflow,Python,Django,Django Viewflow,我有一个Django应用程序,我需要按照不同的工作流程进行不同的输入 我通过POST端点接收一个带有数据有效负载的输入参数。根据输入,我需要启动不同的函数,相应地处理数据,最后将其保存在数据存储中 一种选择是编写if-else,但是随着代码的增长,编写if-else很难维护 例如:- If input1, then function1(), process1(), save1() elif input2, then function2(), process2(), save2() 我已经研究

我有一个Django应用程序,我需要按照不同的工作流程进行不同的输入

我通过
POST
端点接收一个带有数据有效负载的输入参数。根据输入,我需要启动不同的函数,相应地处理数据,最后将其保存在数据存储中

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

例如:-

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

elif input2, then function2(), process2(), save2()
我已经研究了,和许多其他业务规则库,但不确定推荐的方法


如果有人能给我提供一个虚拟的例子或一个开源项目,我可以通过它来理解相同的实现,这将是非常有帮助的。

我认为你不是在构建一个巨大的应用程序,对吗

因此,为了关注根需求,即针对不同输入的不同处理,您可以创建从基本对象扩展而来的多个对象,例如
AppleProcessor
OrangeProcessor
。它们都共享相同的接口

然后在后勤部分,您可以创建一个字典,如下所示:

processors = {"Apple": AppleProcessor, "Orange": OrangeProcessor}
这样就很容易在使用中使用:

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

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

您知道如何使用Django viewflow吗?我不完全确定怎么做?