在Django中存储SpiffWorkflow状态
我想把SpiffWorkflow和Django一起使用,但好像SpiffWorkflow只能把它的状态保存成JSON和XML格式。
这个链接可以查看相关内容。
SpiffWorkflow可以把正在运行的工作流程保存下来,所以我可以把它存成字节流,放在某个地方(比如文件系统或者Django的数据库里)。但是这样的话,我就失去了使用Django的一些好处。
有没有办法把字典或者反序列化的JSON结构映射到Django可以用的普通对象上(也就是Django ORM可以存储到数据库里的对象)?为SpiffWorkflow写这样一个Django后端,或者说把它的工作流程的JSON表示转化成Django对象,会不会很复杂?我问这个是因为我对Django几乎没有经验。
1 个回答
1
你可以用NoSQL作为数据库的后端,而不是传统的关系型数据库(RDBMS)。我推荐MongoDB,因为它用JSON格式来存储数据,这样在Django项目中使用起来会很方便,可以通过mongodb-engine来实现。
MongoDB是无模式的(你可以看看MongoDB官网关于无模式的文章)。这意味着你可以用任何你想要的结构来存储数据,而且可以随时更改,真的是非常灵活。
此外,Django还支持其他一些NoSQL后端,比如Redis、Elasticsearch等等。你可以看看这些选项,找到最适合你需求的数据库。