当前位置: 首页 > 面试题库 >

Django的工作流程框架

楚洋
2023-03-14
问题内容

我一直在寻找一个框架来简化Django应用程序中相当复杂的工作流的开发。我希望能够使用该框架来自动进行状态转换,许可以及审计日志和通知之类的其他功能。

我已经看到了有关同一主题的一些较旧的信息,但在过去的2-3年中所涉及的信息不多。我听说过的主要选择是GoFlow(自2/2009开始不更新)和django-workflow(似乎更活跃)。

有没有人使用过这些软件包?它们是否成熟和/或与现代(1.3)Django兼容?还有其他值得考虑或更好地支持的选择吗?


问题答案:

让我在这里做一些说明,因为我是django-fsm和django-viewflow的作者,这两个项目可以称为“工作流库”。

工作流词本身有点高估。不同种类的库和软件可以称自己为“工作流”,但功能各不相同。共同点是工作流将某个过程的步骤连接成一个整体。

一般分类
如我所见,工作流实施方法可以分类如下:

  • 单/多用户 -工作流库是自动执行单用户任务还是具有权限检查/任务分配选项。
  • 顺序/并行 -顺序工作流只是状态机模式的实现,并且允许同时具有单个活动状态。并行工作流允许一次执行多个活动任务,并且可能具有某种并行同步/联接功能。
  • 显式/隐式 -无论工作流是表示为单独的外部实体,还是被编织到其他类别中,其主要职责都是不同的。
  • 静态/动态 -静态工作流只用python代码实现一次,然后执行,通常可以通过更改工作流数据库表的内容来配置动态工作流。静态工作流通常可以更好地与其他django基础结构(例如视图,表单和模板)集成在一起,并且可以通过类继承之类的常用python结构更好地进行自定义。动态工作流假定您具有可以适应任何工作流运行时更改的通用界面。
    其中,前两个可以看作是渐进的差异,但其他两个是根本的。


 类似资料:
  • 实现细节 添加路由器接口 删除路由器接口 启动新的虚拟机节点 删除虚拟机节点

  • 完成每项开发任务,你都会用到一套流程,流程里面很重要的一部分就是工具。学习开发之前,有些必备的工具可以提前准备一下,你不需要成为使用这些工具的专家,做简单的了解以后,就可以投入到开发的学习中去了。

  • 现在我们知道了什么是Sass,那我们就开始使用它来创建样式吧。我们的第一个任务就是在你的电脑上安装Sass。我在第一章提到过Sass是用Ruby编写的程序,并且使用Ruby来编译成CSS。所以,在我们使用Sass之前,我们需要安装Ruby。 在苹果电脑(MAC)上安装Sass 如果你有一台MAC电脑(那你应该高呼万岁,你是这么的幸运),那么安装就会变得更简单。MAC OS X系统预安装了Ruby和

  • 在本章中,我们将讨论Git的生命周期。 在后面的章节中,我们将介绍每个操作的 Git 命令。 一般工作流程如下: 将Git的一个存储库克隆为工作副本。 可以通过添加/编辑文件修改工作副本。 如有必要,还可以通过让其他开发人员一起来更改/更新工作副本。 在提交之前查看更改。 提交更改:如果一切正常,那么将您的更改推送到存储库。 提交后,如果意识到某些错误并修改错误后,则将最后一个正确的修改提交并将推

  • JMeter通过模拟一组用户将请求发送到目标服务器。 随后,收集数据以通过各种格式计算目标服务器的统计和显示性能度量。 如下图所示:

  • 工作流程提供了提供输入的顺序的视觉概览。它还说明了执行的操作,并为操作过程生成了输出。 工作流允许分离和排列用户最需要的作业。它还能够在配置作业中镜像其理想过程。 DevOps工作流程: 并行作业执行 顺序作业执行 分枝级过滤