Flask函数在同一个应用程序中调用其他烧瓶功能?

时间:2013-03-18 04:05:49

标签: python flask

我连接了几个烧瓶功能,以便我可以在以下位置调用它们:

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

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

2 个答案:

答案 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

希望这有帮助。