1

我想构建一个混合应用程序(嵌入在桌面应用程序中的 Web 技术)。

我将从 Web 版本开始,然后使用 WebKit 将其嵌入,但我不希望嵌入式版本通过 TCP 端口为请求提供服务。

使用 WebKit (Qt,Gtk) 我可以拦截所有 URL 请求并对其采取行动。

我缺少的是一种无需通过 TCP(或 WSGI)即可调用 Flask URL-to-callable 调度程序的方法。

有什么比使用调试器分析调用堆栈更好的想法吗?

4

1 回答 1

2

Simon Sapin 在(相当活跃的)Flask 邮件列表中回答:

为什么不是 WSGI?

你必须在某个地方找到一个 Python 解释器。然后,您需要使用来自 WebKit 的数据(例如请求的 URL)以某种方式调用您的应用程序,并获得响应。WSGI 就是这样:Python 函数(或其他可调用对象)的调用约定。

如果 WSGI 比您想要的更复杂,您可以使用测试客户端:

这就是我在 Frozen-Flask 中的做法。它在 WSGI 级别模拟对 Flask 应用程序的 HTTP 请求,并将响应写入静态文件。测试客户端只是进行 WSGI 调用的一种更简单的方法:

https://github.com/SimonSapin/Frozen-Flask/blob/master/flaskext/frozen/__init__.py#L228

WSGI 确实是 Flask 的“入口点”。

除此之外,如果您对 Flask 内部工作感兴趣,请从这里开始:

https://github.com/mitsuhiko/flask/blob/master/flask/app.py#L1477

于 2011-10-22T08:26:15.087 回答