我想在现有的python应用中添加一个简单的网络服务器。 此Web服务器应该能够读取/写入现有应用程序的数据。 我正在寻找一个简单的解决方案,只能在我的私人本地网络中运行。
我现有的python app 基于运行状态机的QT QTimer对象(使用PySide)。 状态机本身运行许多其他功能。有些功能是事件驱动的,我使用多个QT信号/插槽连接。
一般情况下,新的网络服务器应该:
每当客户发送请求时,网络服务器应该:
我的想法是使用flask作为webframework和tornado作为webserver。 我会在QThread中运行烧瓶/龙卷风。 与现有应用程序的数据交换可以通过QT信号和&插槽,因为它易于处理。
我试过了,但我无法弄清楚,如何在线程中运行烧瓶/龙卷风并使用信号& amp;同时插槽。
发出信号mythread.started时启动网络服务器:
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)
非常感谢您的回答。
的Nik