Django:项目如何在系统中使用外部应用?
我有一个Django的网页前端,它从一个REST API的后端获取数据。用户也是在后端创建和管理的。
我的问题:
- 我该如何在这个系统中使用一些第三方应用,这些应用非常依赖于Django的模型/ORM?
- 有没有什么方法可以在REST API资源和ORM之间架起一座桥梁?
这个问题该怎么解决呢?
更新
DRY原则在这种情况下似乎不太管用了。
3 个回答
-2
我在一个新的电商项目中遇到了类似的问题。这个项目是一个完整的商店管理软件的前端(包括内容管理系统、企业资源规划和客户关系管理)。它需要使用主产品数据库,但还需要有自己的产品评论、评分等条目。
最初的想法是制作一个主数据库的缓存副本。这样网站在加载这些缓存的内容时会很快,但实现起来并不简单。
经过一些考虑,我们选择的方案是从管理程序更新网站的数据库。这样一来,网站上的数据总是准确的,而且大部分实现不需要担心REST服务(不过仍然会用于用户注册、货物追踪等功能)。
在你的情况下,如果不能让服务远程更新你自己的数据库,你需要想出一种机制,让你可以像使用普通模型一样引用REST资源,并在后台进行缓存。
重要提示:要研究一种方法,确保缓存始终是正确的(不脏)……
-3
我不太确定我完全理解你的问题或者需求。根据我的理解,你有一个主要的后端,这个后端基本上是一个黑箱子,你想在你的项目中使用一些第三方应用,这些应用使用的是Django的ORM。
我不太明白为什么需要在这两个数据存储之间进行双向同步。你的项目用户会从你的主要后端和项目的ORM中获取数据。
既然你担心在主要后端保存“ORM”数据,也许你可以考虑创建一个事务中间件,每当ORM数据更新时就会触发,这样可以将要保存的结构序列化,并传输到你的REST API。我想这个REST API应该能够接受任意的数据结构吧?
你可能至少想使用某种形式的中间件,也许还需要一个工具模块或类来帮助搭建“桥梁”。