Python: создание настольного приложения с графическим интерфейсом HTML
Этот вопрос связан скорее с методологией.
Я хочу создать настольное приложение Python, но я не хочу, чтобы его графический интерфейс был как tkinter или вроде PyQt. Я предпочитаю иметь красивый и современный клиентский интерфейс, например Bootstrap.
Существует ли какой-либо существующий API для создания таких приложений в Python?
Если это не так: звучит ли разумная рабочая среда для использования какого-либо сервера Python (например, Django или как web2py)), и для запуска нового сервера каждый раз, когда приложение запущенном пользователем, только для того, чтобы ядро приложения находилось на Python, а клиент - в HTML?
Кто-нибудь работает таким образом?
Ответы
Ответ 1
Используйте встроенную поддержку PyQt или PySide 2, Qt WebEngine и Qt для размещения приложений HTML:
http://doc.qt.io/qt-5/qtwebchannel-index.html
Общая архитектура - это SPA (одностраничное приложение), выполняющееся из локального содержимого HTML и Javascript, поставляемого в комплекте с вашим приложением, - нет необходимости в связывании на веб-сервере.
Для чего-то сложного (например, обхода проблем с разными источниками) используйте Qt WebChannel для сообщения функциональности, построенной на стороне Python.
Это в основном та же архитектура, которую использует Cordova.
Теперь, стоит ли вам создавать приложение таким образом (кашель QML) - это совершенно другая тема.
Ответ 2
Существует ценность наличия локального сервера, который работает с вашим графическим интерфейсом, независимо от того, применяется ли это в вашем случае, в значительной степени зависит от требований приложения.
Большинство приложений, которые я пишу, имеют тенденцию к тому, что они становятся многопользовательскими и размещенными, поэтому для меня это совершенно бессмысленно.
Если вы идете по этому маршруту, посмотрите также http://brython.info/, имея одинаковые языки во всем, что позволяет переключать контекст мозга меньше "накладных расходов" (помилуй каламбур).