Flask 向另一个Python应用程序读/写数据的Python Web服务器

Flask 向另一个Python应用程序读/写数据的Python Web服务器,flask,tornado,pyside,qthread,qt-signals,Flask,Tornado,Pyside,Qthread,Qt Signals,我想在我现有的python应用程序中添加一个简单的Web服务器。 此Web服务器应该能够读取/写入我现有应用程序的数据。 我正在寻找一个简单的解决方案,只运行在我的私人本地网络 我现有的python应用程序基于运行状态机的QT-QTimer对象(使用PySide)。 状态机本身运行许多其他功能。有些函数是事件驱动的,我使用几个QT信号/插槽连接 一般来说,新的Web服务器应该: 交付静态网站 通过Ajax向客户端(Webbrowser)发送和接收一些数据。数据由我现有python应用程序中的设

我想在我现有的python应用程序中添加一个简单的Web服务器。 此Web服务器应该能够读取/写入我现有应用程序的数据。 我正在寻找一个简单的解决方案,只运行在我的私人本地网络

我现有的python应用程序基于运行状态机的QT-QTimer对象(使用PySide)。 状态机本身运行许多其他功能。有些函数是事件驱动的,我使用几个QT信号/插槽连接

一般来说,新的Web服务器应该:

  • 交付静态网站
  • 通过Ajax向客户端(Webbrowser)发送和接收一些数据。数据由我现有python应用程序中的设置组成
每当客户端发送请求时,Web服务器应:

  • 从我现有的python应用程序读取数据
  • 将此数据发送回客户端

问题 我的想法是使用flask作为Web框架,使用tornado作为Web服务器。 我会在QThread中运行flask/tornado。 与我现有应用程序的数据交换可以通过QT信号和插槽完成,因为它很容易处理

我试过了,但我不知道,在线程中运行flask/tornado和同时使用信号和插槽有多精确

  • 我创建了一个workerclass,并通过moveToThread(mythread)将其推送到一个qthread
  • 当发出mythread.started信号时,Web服务器启动:

    def processs(self):
      print ("thread started with id:       " + str(QThread.currentThreadId()))
      http_server = HTTPServer(WSGIContainer(self.app))
      http_server.listen(5000)
      IOLoop.instance().start()
    
  • 下面是一个简单的测试路线在这里,我必须向我现有的python应用程序发送一个信号,并通过插槽接收数据。但我不知道如何处理

    @app.route('/_add_numbers')    
    def add_numbers():
      """Add two numbers server side, ridiculous but well..."""
      a = request.args.get('a', 0, type=int)
      b = request.args.get('b', 0, type=int)
      return jsonify(result=a + b)
    
非常感谢你的回答

尼克