PySide6.QtHttpServer.QHttpServerRouter

class QHttpServerRouter

提供将URL绑定到ViewHandler的功能。更多

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QHttpServerRouter 是一个类,用于通过基于规则的系统将HTTP请求分发到它们各自的处理程序。

您可以注册新的QHttpServerRouterRules,它表示请求路径和相应的处理程序。路由中的可变部分可以通过请求路径中的占位符来指定。处理程序将占位符的值作为QRegularExpressionMatch获取。参数可以是任何类型的,只要有一个converter可用。处理程序的创建可以通过bindCaptured来简化。QHttpServerRouter实例不得由其规则修改。

注意

这是一个用于HTTP服务器的低级路由API。

最小示例:

auto pageView = [] (const quint64 page) {
    qDebug() << "page" << page;
};
using ViewHandler = decltype(pageView);

QHttpServerRouter router;

// register callback pageView on request "/page/<number>"
// for example: "/page/10", "/page/15"
router.addRule<ViewHandler>(
    new QHttpServerRouterRule("/page/", [=] (QRegularExpressionMatch &match,
                                             const QHttpServerRequest &,
                                             QHttpServerResponder &&) {
    auto boundView = QHttpServerRouterRule::bindCaptured(pageView, match);

    // it calls pageView
    boundView();
}));
__init__(server)
Parameters:

服务器QAbstractHttpServer

创建一个带有默认转换器的QHttpServerRouter对象。

另请参阅

converters

addConverter(metaType, regexp)
Parameters:
  • metaTypeQMetaType

  • regexp – 字符串

metaType添加一个新的转换器,可以使用regexp进行解析。为metaType提供一个转换器使得可以在QHttpServerRouterRule的路径模式中使用这种类型。正则表达式用于从路径模式中解析metaType类型的参数。

如果已经存在类型为metaType的转换器,则该转换器的正则表达式将被regexp替换。

clearConverters()

移除所有转换器。

注意

clearConverters() 不会设置默认的转换器。

另请参阅

converters addConverter

converters()
Return type:

字典的键类型为 .QMetaType,值类型为 QString。

handleRequest(request, responder)
Parameters:
Return type:

布尔

使用responder处理HTTP服务器的每个新request

遍历规则列表以找到第一个匹配的规则,然后执行此规则,返回true。如果没有规则匹配请求,则返回false

removeConverter(metaType)
Parameters:

metaTypeQMetaType

移除类型为 metaType 的转换器。

另请参阅

addConverter