我连接了几个烧瓶功能,以便我可以在以下位置调用它们:
localhost:5000/FunctionA/inputs
localhost:5000/FunctionB/inputs
localhost:5000/FunctionC/inputs
我希望functionC能够调用FunctionA和FunctionB。我该怎么做呢?当我尝试在FunctionC中编写一个调用来调用另一个调用(例如,FunctionA)时,调用会无限期地挂起(可理解 - FunctionC正在等待自己结束,以便终点可以自由处理functionA请求。)
答案 0 :(得分:1)
这已在此处回答:Handling multiple requests in Flask
但是TLDR;你只需要像这样设置你的运行函数:
app.run(threaded=True)
我假设您正在使用Flask服务器,并且需要在开发过程中运行它。对于生产,请检查上面链接中的选项
答案 1 :(得分:0)
我不确定您要问的是什么,但是当用户访问functionC时,您可以轻松地为functionA和functionB发起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 documentation显示了如何对Flask应用程序返回的数据执行某些操作(例如,获取响应)并将其作为URL变量发送到functionC中。
如果您真的想将用户重定向到每个视图功能服务器端,您所要做的就是使用Flask的redirect
功能。这是documentation。
希望这有帮助。