用浏览器作为界面的Python桌面应用程序?

26 投票
5 回答
29324 浏览
提问于 2025-04-15 21:26

我想创建一个可以在用户电脑上运行的应用程序,也就是一个独立的应用,需要安装什么的。不过,我希望这个应用的界面是一个浏览器,可以是内部的,像操作系统的窗口那样显示,也可以是外部的,通过浏览器访问(也就是说,像一个http服务器那样)。

这样做的原因是我对Python有一点了解,但我觉得只要有一些基本的东西可以用和操作,我就能搞定,而这些基本的东西就是HTML、CSS和JavaScript。

我还没找到一个好的图形用户界面工具可以使用,每次尝试之后都觉得很麻烦,最后都放弃了这个想法。

5 个回答

2

有很多很棒的图形用户界面(GUI)工具,可以帮助你用HTML、CSS和JavaScript来做你想要的界面。如果你不知道有哪些工具,可以单独提问,并加上合适的标签。

在这种情况下,Python这边不需要自己有图形界面,而是运行Python标准库里的HTTP服务器,只负责提供HTML、CSS和JS文件,以及通过JSON在其他URL上提供数据,这些URL可以通过JavaScript的Ajax技术访问。这样做其实就是在实现数据存储和业务逻辑,所以你可能会想,“我到底需要什么样的‘GUI工具’呢?”

你可以单独开发Python部分(比如用IDLE、Wingware、SPE或者你喜欢的其他工具),然后再单独开发HTML/CSS/JavaScript,使用你自己的“GUI工具”。毕竟,Python只需要静态地“提供”这些文件。

你可能在考虑使用一些Python的模板工具,比如Mojo等,但我建议你避免这样做。相反,最好采用“轻量级服务器架构”,让Python部分成为一个处理业务逻辑和数据存储的RESTful服务器,所有的GUI工作都在浏览器里完成。

3

你可以使用 Pyjamas。它是把谷歌的Web工具包移植到Python上的一个项目,简单来说,就是你用Python写代码,然后它会被转换成HTML和JavaScript。

12

Python提供了两个你可能会感兴趣的东西:

  • 标准库里有一个网页服务器
  • 一个叫做WSGI的标准化接口,用于网页应用

所以,给你的应用加一个网页界面其实很简单。例如,在Mercurial(一个版本控制系统)里,你可以用命令hg serve来启动一个网页服务器。

如果你想看看Python是怎么启动网页服务器和WSGI应用的,只需要运行:

python -m 'wsgiref.simple_server'

你可以查看wsgiref的源代码或者找一些WSGI的教程,来做一个简单的应用。

之后,你可能还想用一个网页框架(来处理模板等),但那又是另一个话题了……

撰写回答