如何用QHttpServer返回json对象

问题描述 投票:0回答:1

我正在尝试使用Python中的QHttpServer创建一个简单的rest api。我检查过 C++ 中的示例。但是,我无法让它在 Python 中工作。当

callback_api
返回字符串时,它以纯文本形式可见,但任何其他返回值都会创建一个具有空正文和状态代码 200 的响应。此外,除 200 之外的状态代码没有任何效果。返回 json 和/或所需状态代码的正确方法是什么?

import sys
from PySide6.QtWidgets import QApplication
from PySide6.QtHttpServer import QHttpServer,QHttpServerRequest, QHttpServerResponse, QHttpServerResponder
from PySide6.QtNetwork import QHostAddress
from PySide6.QtCore import QJsonArray, QJsonValue


def test(req: QHttpServerRequest):
    d = {"key": "value"}
    return QHttpServerResponse(d)


app = QApplication(sys.argv)
server = QHttpServer()
server.listen(QHostAddress("127.0.0.1"), 5005)
server.route("/api", test)
app.exec()
python qt pyside pyside6
1个回答
0
投票

你不能那样做。目前 PySide 不支持返回

QHttpServerResponse
的视图处理程序。 (有关详细信息,请参阅来源。)

使用 C++ 中的 Qt HTTP Server 库或使用其他 python Web 框架,例如 Flask。

© www.soinside.com 2019 - 2024. All rights reserved.