【问题标题】:django app consuming rest api - where to put the code使用rest api的django应用程序-将代码放在哪里
【发布时间】:2025-12-13 22:50:02
【问题描述】:

我有一个 django 应用程序,它存储用户通过 Web 界面输入的数据的模型。

查看/保存模型实例时,我需要使用第三方 REST api。我知道如何做到这一点,但我不确定的是这段代码应该与 django 应用程序一起存放在哪里。

我的直觉是将这段代码放在模型类中,但你也可以使用视图...我只是不确定。

以前是如何做到的,有很多帖子询问如何做到这一点,但没有说明放置代码的最佳位置。

我们将不胜感激地接受任何指导。

干杯

【问题讨论】:

    标签: django boto


    【解决方案1】:

    这是一个主观问题,所以这里是一个主观答案。

    首先,确保与此外部 REST API 交互的任何代码都驻留在单独的模块中。例如,如果您从字典 API 中获取单词定义,则与此 API 对话的所有代码理想情况下都应位于单独的 dictionary 模块中,然后您可以将其导入到您的视图中。

    其次,您的models.py 应该只声明您的应用程序的数据模型并定义此模型上的操作,其他的不多。他们不应该关心请求/响应周期、读取文件、渲染模板、进行 HTTP 调用或其他任何事情。按照这种逻辑,您应该从您的视图中进行这些 REST API 调用,并在需要时将返回的数据传递到您的模型中。

    最后,请三思而后行从您的 Django 应用程序中进行 REST 调用。默认情况下,Python 执行同步(阻塞)I/O,这意味着只要应用程序等待 REST 调用完成,它就无法为任何传入的 HTTP 请求提供服务。如果您没有太多用户,这不是问题,但对于需要扩展的应用程序,请记住这一点。您可能想研究 Python 的异步 I/O 库。

    【讨论】:

    • 您好,非常感谢您的回复。它解决了我关于模型与视图中的内容的问题。关于异步的优点,我在看 django-celery 和某种 ajax
    最近更新 更多