我想构建一个混合应用程序(嵌入在桌面应用程序中的Web技术)。
我将从Web版本开始并使用WebKit嵌入它,但我不希望嵌入式版本通过TCP端口为请求提供服务。
使用WebKit(Qt,Gtk),我可以拦截所有URL请求并对其进行操作。
我缺少的是一种在不通过TCP(或WSGI)的情况下调用Flask URL-to-callable调度程序的方法。
比使用调试器分析调用堆栈更好吗?
答案 0 :(得分:2)
Simon Sapin回答了(非常活跃的)Flask邮件列表:
为什么不是WSGI?
你必须在某处获得Python解释器。然后你需要打电话 你的应用程序以某种方式来自WebKit的数据,就像URL一样 要求,并得到答复。 WSGI就是这样:一个呼唤 Python函数(或其他可调用对象)的约定。
如果WSGI比您想要的更复杂,您可以使用测试客户端:
- http://flask.pocoo.org/docs/api/#flask.Flask.test_client
- http://werkzeug.pocoo.org/docs/test/#werkzeug.test.Client
- http://werkzeug.pocoo.org/docs/test/#werkzeug.test.EnvironBuilder
这就是我在Frozen-Flask中的表现。它模拟对a的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