PySide6.QtHttpServer.QHttpServerRouter¶
- class QHttpServerRouter¶
提供将URL绑定到
ViewHandler
的功能。更多…概要¶
方法¶
def
__init__()
def
addConverter()
def
converters()
def
handleRequest()
注意
本文档可能包含从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
对象。另请参阅
为
metaType
添加一个新的转换器,可以使用regexp
进行解析。为metaType
提供一个转换器使得可以在QHttpServerRouterRule
的路径模式中使用这种类型。正则表达式用于从路径模式中解析metaType
类型的参数。如果已经存在类型为
metaType
的转换器,则该转换器的正则表达式将被regexp
替换。- clearConverters()¶
移除所有转换器。
- converters()¶
- Return type:
字典的键类型为 .QMetaType,值类型为 QString。
- handleRequest(request, responder)¶
- Parameters:
请求 –
QHttpServerRequest
responder –
QHttpServerResponder
- Return type:
布尔
使用
responder
处理HTTP服务器的每个新request
。遍历规则列表以找到第一个匹配的规则,然后执行此规则,返回
true
。如果没有规则匹配请求,则返回false
。移除类型为
metaType
的转换器。另请参阅