Skip to main content
 首页 » 编程设计

python之使用 API 而不是数据库的 Django 模型

2024年10月01日28xxx_UU

我是 Django 的新手,有一些要求涉及创建一个 Django 应用程序作为 API 服务器的前端。

此应用几乎不需要将数据存储在本地数据库中。相反,我们将访问 REST API 以获取和发布数据。

由于不太熟悉该框架,我应该将获取和操作远程 API 上的数据的逻辑放在哪里?我最初的想法是将其放入 models.py 文件中,但是模型似乎是专门为 Django 中的数据库访问而设计的。

然后我在我的表单类的 get/post 函数中放置了请求调用。但是,这似乎是我将数据逻辑与 View 混淆了。此外,我注意到在我重新启动服务器之前,在发布表单后重新加载页面会导致表单包含表单的原始 GET 请求。

看来我应该把这个逻辑放在别处,但我希望有人能解释一下在这种情况下什么是“标准”。

我确定我不是第一个遇到这个问题的人,我想了解其他项目如何在 Django 中处理这个问题。感谢您的指导。

请您参考如下方法:

当我试图围绕 API 包装 Django ORM 时,我正在处理一个类似的问题,我很惊讶以前没有其他人做过这样的事情。 (或者至少他们没有就此发表公开要点或博客文章。)

我认为您的直觉是正确的,逻辑可能不应该出现在 View 或表单中。理想情况下,它应该是较低级别的(模型、管理器、查询集或更低级别),以便您获得 Django 其余部分的所有好处。

我认为最理想的方法是创建一个模拟数据库功能的自定义数据库后端,同时直接与 API 交互。

以下是对这意味着什么的高级概述: http://reinout.vanrees.org/weblog/2016/11/04/database-backends.html

此外,如果您查看 Django 源代码,您可能会使用 django/db/backends/dummy/作为代码结构的起点。