我的目标:
以下是我的谷歌搜索解决方案:
基于此解决方案,我有以下问题,如果有任何误解,请随时纠正我。
必须首先手动执行python,然后javascript才能将ajax请求发送到http://localhost:5000/[...some @app.route()]
。我需要在第一个ajax请求之后python 开始无限运行(while循环)。
烧瓶python 不能进行while循环。不确定Flask中app.run()
的机制。
达到第一点后,一旦python更改了变量,javascript也必须保持更新。现在看来,我必须继续发送ajax请求才能从python获取变量。
真的很感谢有任何信息可以解决我的问题!
答案 0 :(得分:3)
基本上,您需要三个部分
您可以将A + B组合到一个进程中,在这种情况下,您必须在单独的线程中运行循环,或者可以使用任何可用的IPC方式(例如共享内存/管道/套接字)在A之间进行通信和B。一个简单的解决方案是使用数据库服务器,A向其写入数据,B从其读取数据。
如果A和B是分开的,那么B不必是python,您可以用js或php或其他任何语言编写它。
为避免在客户端进行轮询,可以使用WebSockets在B和C之间进行通信。
答案 1 :(得分:0)
您将不得不在另一个线程或进程中运行while循环,例如,使用flask-celery
可以使用setTimeout
实现javascript更新