在没有 TCP 端口的情况下通过 Flask 调度 URL

发布于 2024-12-09 20:30:24 字数 237 浏览 0 评论 0原文

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

我将从 Web 版本开始,并使用 WebKit 嵌入它,但我不希望嵌入版本通过 TCP 端口服务请求。

使用 WebKit(Qt、Gtk),我可以拦截所有 URL 请求并对其进行操作。

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

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

I want to build a hybrid application (Web technologies embedded in a desktop app).

I will start with a Web version and the embed it using WebKit, but I don't want the embedded version to service requests through a TCP port.

With WebKit (Qt,Gtk) I can intercept all URL requests and act on them.

What I'm missing is a way to invoke the Flask URL-to-callable dispatcher without going through TCP (or WSGI).

Any ideas better than analyzing the call stack with a debugger?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

偏爱自由 2024-12-16 20:30:24

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

为什么不使用 WSGI?

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

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

这就是我在 Frozen-Flask 中的做法。它模拟 HTTP 请求
WSGI 级别的 Flask 应用程序并将响应写入静态文件。
测试客户端只是进行 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

Simon Sapin answered on the (quite active) Flask mailing list:

Why not WSGI ?

You have to get a Python interpreter somewhere. Then you need to call
your application somehow with data from WebKit like the URL being
requested, and get the response. WSGI is just that: a calling
convention for Python functions (or other callable objects.)

If WSGI is more complex than you’d like, you can use the test client:

That’s how I do it in Frozen-Flask. It simulates HTTP requests to a
Flask app at the WSGI level and write the responses to static files.
The test client is just an easier way to make WSGI calls:

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

WSGI really is Flask’s "entry point".

Other than that if you’re interested in Flask inner workings start
looking from here:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文