Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python API前端架构_Python_Django_Architecture_Celery - Fatal编程技术网

Python API前端架构

Python API前端架构,python,django,architecture,celery,Python,Django,Architecture,Celery,我想建立一个网站,它是一个API的前端。基本上,前端接受一些用户输入,并使用这些输入来查询API和检索结果。检索结果时,将显示这些结果。这一切都是异步完成的 我的问题是: 我是否使用芹菜之类的东西在后台处理API查询 假设我使用AJAX(我将使用AJAX),我是否有不同的URL来处理用户输入和检索查询结果 我是否使用长轮询之类的方法来获取并用JavaScript显示结果 考虑到检索到的结果可以进一步过滤,我正在考虑使用memcached作为存储。这是否恰当 如果我错过了什么,或者有更好的方法,我

我想建立一个网站,它是一个API的前端。基本上,前端接受一些用户输入,并使用这些输入来查询API和检索结果。检索结果时,将显示这些结果。这一切都是异步完成的

我的问题是:

  • 我是否使用芹菜之类的东西在后台处理API查询
  • 假设我使用AJAX(我将使用AJAX),我是否有不同的URL来处理用户输入和检索查询结果
  • 我是否使用长轮询之类的方法来获取并用JavaScript显示结果
  • 考虑到检索到的结果可以进一步过滤,我正在考虑使用memcached作为存储。这是否恰当
  • 如果我错过了什么,或者有更好的方法,我很高兴听到

    编辑:我意识到我用错误的方式解释了需求,所以我将尝试改写。 基本上,我的网站是基于一个我无法控制的API。还有第三方API,我的应用程序在后端使用Django,前端使用JavaScript、CSS和HTML


    这就是我把芹菜放进调料的原因。在我看来,应用程序的流程是这样的。用户在我的网页上输入所需的信息,当用户提交数据时,数据将异步发送到我的后端。现在,芹菜用于向第三方API发送请求并检索数据。同时,我的前端不断轮询后端以获取数据,并在接收数据时开始显示数据。

    您在这里遗漏了一些要点。根据您的需求,我假设您希望构建一个查询(RESTful)API的前端(html+javascript),该API只是一个“讲”HTTP的服务器

    因此,API查询与服务器有关,即Apache上的Django或Tornado或。。芹菜不能“处理”您的查询,但它可以用于后台任务

    在客户端,AJAX调用将触发一些映射到某些URL的服务器端视图。如何定义它们取决于您。看看一些流行的API(twitter),看看它们是如何构造的

    长轮询与您的“业务”逻辑有关,它定义了一种稍后如何向客户机显示数据的方法

    此外,缓存与服务器端性能有关,建议您使用memcached或redis之类的工具


    编辑(为了编辑):你的方法没有错。芹菜是从外部API获取数据,然后将结果保存到数据库的正确工具,当然,还可以使用一些缓存。然后从客户端进行一些轮询以获得结果。但是,有一种更为优化、无阻塞、优雅的方法可以实现同样的效果。您可以使用Tornado从外部API获取数据,当这些数据准备好后,将它们发送到客户端。不要芹菜,不要长时间吃。非常棒的代码片段。

    您的回答让我意识到我对问题的解释不正确。我已经更新了我的解释(希望更清楚)。