django app使用rest api - 在哪里放代码

时间:2013-03-19 18:26:29

标签: django boto

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

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

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

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

感谢任何指导。

干杯

1 个答案:

答案 0 :(得分:3)

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

首先,确保与此外部REST API交互的任何代码都驻留在单独的模块中。例如,如果您从字典API中获取单词定义,那么与此API对话的所有代码最好都在一个单独的dictionary模块中,然后您可以将其导入到视图中。

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

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