2

我有几个烧瓶函数连接起来,以便我可以在以下位置调用它们:

localhost:5000/FunctionA/inputs
localhost:5000/FunctionB/inputs
localhost:5000/FunctionC/inputs

我希望 functionC 能够调用 FunctionA 和 FunctionB。我该怎么做呢?当我尝试在 FunctionC 中编写调用以调用另一个调用(例如 FunctionA)时,调用会无限期挂起(可以理解 - FunctionC 正在等待自身结束,以便端点可以自由处理 functionA 请求)。

4

2 回答 2

1

这已在此处得到解答:在 Flask 中处理多个请求

但是 TLDR;你只需要像这样设置你的运行功能:

app.run(threaded=True)

我假设您正在使用 Flask 服务器,并且需要在开发时运行它。对于生产检查上面链接中的选项

于 2015-04-29T14:37:14.253 回答
0

我不确定您到底在问什么,但是当用户访问函数 C 时,您可以轻松地为函数 A 和函数B 发起 GET 请求客户端。AJAX 允许您在后台执行此操作而无需重新加载页面。jQuery 使 AJAX 变得简单。在您的 Jinja 模板中,只需像这样加载 jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>

然后当文档已经加载(即用户访问functionC并且页面已经渲染)时,只需执行以下操作:

<script>
$(document).ready(function(){

    $.get("localhost:5000/FunctionA/inputs");
    $.get("localhost:5000/FunctionA/inputs");
});
</script>

上面的代码只会向指定的 URL 发送一个 GET 请求并忽略它们的任何响应,但是 jQuery文档显示了如何处理 Flask 应用程序返回的数据(例如,获取响应并将其发送到 functionC 作为URL 变量)。

如果你真的想将用户重定向到服务器端的每个视图函数,你所要做的就是使用 Flask 的redirect函数。这是文档

希望这可以帮助。

于 2013-12-26T21:44:28.610 回答