使用web-server替代python中的GUI

时间:2012-04-04 15:06:21

标签: python user-interface

我有一个我即将开始的GUI项目。 GUI要求很简单(虽然不像tkinter那么简单)。所以我需要为python使用GUI工具包(如果我必须使用GUI,那将是wxpython)。现在我在想,为什么我不能使用简单的web框架,如cherrypy或bottlepy(对不起,如果我没想到的话。我是服务器端编程的新手)并创建html页面作为我的图形界面并使用DOM(再次,我想,我说得对,而不是使用wxpython来创建整个GUI。然后,我可以编写所有业务逻辑,剩下的就是简单的html渲染,我必须花更少的时间来格式化表格,创建按钮和表单,并担心sizer。

我的问题是:有人可以使用诸如cherrypy或类似的web服务器python包并使用图形工具包吗?它是真的有益还是我认为这件事是颠倒的?

我期待的好处:

我可以使用jquery来创建许多功能,这些功能可能需要花费大量时间才能使用wxpython或其他GUI工具包创建。例如,如果我想将自动完成功能与jquery类似,那么在GUI工具包中就像wxpython一样,它有很多不同的故事。而且,html中很多拖放功能都很简单。

4 个答案:

答案 0 :(得分:4)

是的 - 这只是一个Web应用程序而不是本机应用程序。

优点包括可移植性(假设您可以在任何设置上运行python代码 - 不确定您的应用程序的用途是什么)并且不处理讨厌的布局问题和TK事件等。

但是,您也在戏剧性地改变您编程的范例。根据您的目标,这可能无关紧要。

至于使用网络框架:

在最简单的情况下,您可以在CGI下运行一组python脚本。或者你可以得到一个带有django或web2py的数据库抽象层(DAL / ORM)的MVC框架。

如果您想快速启动并运行,我建议使用web2py - 安装简单并附带内置服务器,这样您就不需要设置apache实例并乱用Proxying或mod_wsgi或者所有的善良。

如果您暂时没有标记网页,那么您应该明确地转到w3c(http://www.w3schools.com/)并刷新CSS / HTML。

但是 - 是的 - web2py将允许你运行任何python模块/包,虽然你将不得不学习处理客户端 - 服务器模型并意识到客户端事件必须在javascript中处理,而python代码只能是在服务器上执行,然后仅从请求URI执行。

简而言之,会有一些“粘合剂”。代码,但这是web2py(恕我直言)擅长的。

http://web2py.com https://www.djangoproject.com/ http://wiki.python.org/moin/CgiScripts

享受!

答案 1 :(得分:2)

你是对的,但是don't roll your own

答案 2 :(得分:2)

你认为绝对正确。有大量基于python的框架,只需选择正确的框架:金字塔,挂架,django是最受欢迎和广泛使用的。

我建议你将HTML / CSS切片外包给一些专业人士而不是自己做。你可以面对很多特定于浏览器的东西,这会浪费你的时间,但对于有经验的人来说却是显而易见的。

答案 3 :(得分:1)

不,你正在考虑这个问题。 HTML / CSS非常简单,可以为快速开发提供帮助。此外,python微框架将使创建业务逻辑变得轻而易举。这是一条非常直接的sipmle路线。