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

2024-04-24 15:22:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

例如:

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

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

我研究了Intellectdjango-viewflow和许多其他业务规则库,但不确定推荐的方法。你知道吗

如果有人能给我提供一个虚拟的例子或者一个开源的项目,我可以通过它来理解相同的实现,这会很有帮助。你知道吗


Tags: 数据django函数代码应用程序参数if流程
1条回答
网友
1楼 · 发布于 2024-04-24 15:22:00

我认为你没有建立一个巨大的应用程序,对吗?你知道吗

因此,要关注根需求,即针对不同输入的不同进程,可以创建多个从基本对象Processor扩展的对象,例如AppleProcessorOrangeProcessor。它们共享相同的接口。你知道吗

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

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

使用起来很容易:

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

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

相关问题 更多 >