Python/SQLite程序,写成浏览器应用还是桌面应用?

5 投票
8 回答
6017 浏览
提问于 2025-04-15 23:15

我正在计划重写几年前自己写的一个Access数据库,想把它做成一个完整的程序。我对编程的经验非常有限,根本不敢称自己是程序员。不过我会在学习中逐步进步,所以我希望一切都尽量简单。我决定使用Python和SQLite来开发这个程序,但我需要在下一个决定上得到一些帮助。

这是我的情况:

1) 这个程序会在每台机器上本地运行,所有的电脑都是Windows系统。

2) 我希望能有一个好看的界面,里面有颜色、漂亮的屏幕、菜单、列表等等。

3) 我在考虑使用浏览器界面,因为(a)我听说浏览器应用看起来真的很不错,(b)我了解到有很多免费的工具可以帮助设置界面和代码,像拖拽工具,这样可以帮助我实现“保持简单”的目标。

4) 我希望这个程序完全可移植,能够从用户电脑上的一个文件夹里直接运行,不需要任何安装。

(如果我做成浏览器应用,用户的浏览器设置会不会影响或者破坏这个应用?这种可能性有多大?)

针对我的情况,我应该/可以把它做成浏览器应用吗?这样做的优缺点是什么?

8 个回答

3
  1. 你没有说明你是在Windows、Linux还是其他操作系统上。
  2. 如果你在写一个浏览器应用,首先你需要一个网络服务器。如果每个用户都在自己的电脑上运行这个应用,那就意味着每个用户都得在本地运行一个网络服务器。

另外,有很多快速开发的图形用户界面工具,比如wxPython和Glade,这些工具可以让设计图形界面应用变得简单易行。

我建议如果你在做一个网络应用,就走浏览器的路线。

如果你在做一个独立的应用,那就选择本地应用。

这里有一个几乎完整的框架列表,你可以选择适合你需求的框架。 http://wiki.python.org/moin/GuiProgramming

我个人比较喜欢PyGtk,不过如果你之前没有做过图形界面编程,它可能会有一点学习难度。

4

我做了一个在Windows上运行的桌面应用程序,我觉得这是开发应用的一个很好的方式。

我推荐你看看bottle。它是一个轻量级的网页框架。虽然它的功能没有Django那么强大,但也能很好地完成任务。如果你想在没有Python的机器上部署,可以用py2exe打包它。

网上有很多JavaScript库可以帮助你。我喜欢jquery和jquery-ui,还有raphaeljs等等,但还有其他的选择。

我的应用运行在一个基于Pyjama-Desktop的mshtml组件的小浏览器里。这样,用户就不知道这是一个网页应用。不过,你也可以让应用在用户喜欢的浏览器中运行,webbrowser这个Python模块可能对你有帮助。

如果你的应用需要访问文件系统,基于浏览器的应用可能会有点麻烦。出于安全原因,浏览器不能完全访问你的文件系统。不过,你可以用ajaxupload模拟打开文件,用一个iframe来保存文件。

如果它只处理一个sqlite数据库,我觉得这是一个很好的选择。

希望这些对你有帮助。

5

把桌面应用程序做成一个本地托管的网页应用,通常不是个好主意。虽然用HTML、CSS和JavaScript可以做出很棒的用户界面,但用传统的图形用户界面(GUI)框架来做会简单得多。

用网页技术来创建桌面的用户界面,会给你的应用增加很多不必要的复杂性。

  • 用HTML和CSS来做用户界面既难又耗时间。HTML是用来标记文档的语言,而CSS是用来格式化文档的语言,这两者都不太适合用来创建图形用户界面。
  • 使用网页技术会让你的应用依赖于用户的网页浏览器。很多人还在用老旧的浏览器,比如IE 6和7,这些浏览器不符合现代标准。你可能会花上几个小时甚至几天的时间去找那些只在特定浏览器上出现的界面bug。
  • 你还需要用一个网页服务器来提供你的应用,这又增加了一层复杂性。你的应用需要通过受限的网页技术与界面进行沟通,而没有真正网页应用的好处。

我建议你使用一个桌面GUI框架。特别是,我认为wxPython是最适合你的GUI框架;它稳定、使用广泛、文档齐全,并且非常便携。此外,你可以使用像Boa ConstructorwxGlade这样的图形界面构建工具来设计你的应用用户界面。总之,使用几乎任何桌面GUI框架来创建应用都会比使用网页技术简单得多。

撰写回答