#python #webkit #flask #hybrid
#python #webkit #flask #гибрид
Вопрос:
Я хочу создать гибридное приложение (веб-технологии, встроенные в настольное приложение).
Я начну с веб-версии и внедрю ее с помощью WebKit, но я не хочу, чтобы встроенная версия обслуживала запросы через TCP-порт.
С помощью WebKit (Qt, Gtk) я могу перехватывать все запросы URL и действовать по ним.
Чего мне не хватает, так это способа вызова диспетчера Flask URL-to-callable без прохождения TCP (или WSGI).
Есть идеи лучше, чем анализировать стек вызовов с помощью отладчика?
Ответ №1:
Саймон Сапин ответил на (довольно активный) Список рассылки 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.Клиент
- http://werkzeug.pocoo.org/docs/test/#werkzeug.test.Environmbuilder
Вот как я это делаю в Frozen-Flask. Он имитирует HTTP-запросы к приложению Flask на уровне WSGI и записывает ответы в статические файлы. Тестовый клиент — это просто более простой способ выполнения вызовов 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