python - 在 Django 服务器中运行复杂的计算(使用 python/pandas)

标签 python django python-2.7 numpy

我使用 python 中的 Django-rest-framework 开发了一个 RESTful API。我开发了所需的模型,将它们序列化,设置 token 身份验证以及随之而来的所有其他尽职调查。

我还使用 Angular 构建了一个前端,托管在不同的域上。我设置了 CORS 修改,以便可以根据需要访问 API。一切似乎都运行良好。

问题就在这里。我正在构建的 Web 应用程序是一个金融应用程序,它应该允许用户在服务器上运行一些复杂的计算并将结果发送到前端应用程序,以便将它们呈现为图表和其他格式。我不知道如何或在哪里进行这些计算。

我选择 Django 作为后端,因为我期望 python 可以帮助我在需要的地方运行此类计算。基本上,当我调用服务器上的特定 api 链接时,我希望能够从数据库中检索数据,如果需要,可以从多个表中检索数据,并使用这些数据使用 python 或 python 库(pandas 或 numpy)运行一些计算)并将计算结果作为对 API 调用的响应。

如果这是一项艰巨的任务,我至少希望能够使用 API 将数据从表检索到前端,使用 JS 稍微处理数据,然后将其发送到位于服务器处理此数据,该函数将运行必要的复杂计算并响应结果,这些结果将呈现为图表/其他格式。

有人能给我指出从这里出发的方向吗?我在网上查找资源,但我认为我无法找到正确的关键字来搜索它们。我只是想要一个 shell 代码之类的东西集成到我当前的支持中,使用它我可以调用我编写的一些 python 脚本来运行这些计算。

提前致谢。

最佳答案

我假设你的问题是关于“我如何在 django 的 Restful 框架中进行这些计算?”,但我认为在这种情况下你需要放弃这个想法。

您所做的一切都是正确的,但 RESTful API 提供资源——基本上是您的模型。

然而,计算却并非如此。在我看来,您有两种方法可以实现您想要的目标:

1) 编写一个表示计算结果的模型,并使用 RESTful 框架提供服务,因此您的计算是一种资源(如果您将结果存储在数据库中作为缓存方式,则可以很好地工作)

2) 将路由/端点添加到您的 api,这意味着提供该计算的结果。

路径 1:计算即资源

创建一个模型,在实例化时处理计算。 您甚至可以为计算设置继承结构并为计算模型实现接口(interface)。

这样,当资源被请求并且restful框架想要服务该资源时,就会提供计算结果。

路径 2:自定义端点

为您的计算端点添加路由,例如 /myapi/v1/taxes/compute

在此端点的底层 Controller 中,您将加载计算所需的模型,执行计算,并以您喜欢的方式提供结果(可能是 json 响应)。

您仍然可以使用上述继承结构来实现计算。这样,您就可以根据参数实例化计算对象(在上面的例子中taxes)。

这能给你一个想法吗?

关于python - 在 Django 服务器中运行复杂的计算(使用 python/pandas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30547102/

相关文章:

python Pandas : Drop ongoing values from column

python - 在 python 中将网页和相关资源下载到 WARC

python - 是否有任何 pythonic 方法来组合两个字典(为公共(public)值制作一个列表)?

python - 匹配 HTML 中的特定表格,BeautifulSoup

python - 如何在没有所需外部库模块的其他系统上运行我的 Python 代码?

python - Pandas 多个 "group by"并比较不同列中的值

python - 如何对 Pandas 数据透视表进行排序,但将总数保留在表的末尾

django - Rest Framework 序列化程序字段只读不起作用

python - Django 测试,模拟对 url 的有效请求

python - Django:首先按最后一个条目对数据库导入进行排序,依此类推