0

我必须设置一个程序,它从小部件/gui 中读取一些参数,根据数据库值和输入计算一些东西,最后通过 ftp 将一些 ascii 文件发送到远程服务器。

一般来说,我会建议一个 python 程序来完成这些任务。将 Qt 小部件编写为 gui(交互式更改视图、将数字放入表格、设置复选框、在各个层之间切换 - 从未在 python 中做过如此复杂的事情,但在 IDL 中有一些事件处理经验等),设置数据类具有功能,既可以使用给定的约定创建 ascii 文件,也可以通过 ftp 将文件发送到某个远程服务器。

但是,由于我的公司是一群 Windows 用户,每个人都坐在他们的个人桌面上,在每台机器上安装 python 和所有必要的库将是一件很痛苦的事。

此外,在未来的版本中,该程序应该变得更智能,并 24/7 进行一些优化。因此,将其放到服务器上是有意义的。由于我个人更喜欢使用 Linux,因此该服务器已经使用 Ubuntu 服务器进行了设置。

现在的想法是在服务器上运行我的应用程序。但是用户如何访问和控制程序呢?
我猜每个人访问通用控制面板之类的最简单方法是浏览器。我必须确保一次只有一个人向相同的单位发送信号,但这应该可以通过数据库中的标志来实现。经过一番谷歌搜索,在 QtWebKit 旁边,django 似乎是此类任务的首选。但...

我可以在我的 Web 应用程序下运行一个成熟的 python 程序吗?django 是正确的工具吗?

如前所述,在(中期)未来(约 1 年),我们可能必须实现一些计算量大的任务。那么是否也可以像在普通python中一样使用C?

我的另一个问题是关于开发的。为了提高生产力,我们必须小步前进。我可以先创建常规的 Python 类,然后再将其导入我的 Web 应用程序吗?(同样的问题适用于小部件/QT?)

最后:有没有更好的方法?有什么标准,有参考吗?

4

1 回答 1

0

Django 是该网站的一个很好的候选者,但是:

  • 从网站运行繁重的功能并不是一个好主意。它应该发生在一个单独的过程中。

  • 所有功能都应该是异步的,IE 你永远不应该等待某事完成。

我个人建议使用消息队列编写一个单独的进程,网站只会询问该进程的状态,并始终立即向用户显示结果

  • 您可以使用 ajax 以便浏览器始终拥有最新的结果。

ZeroMQ 或 Celery 可用于实现该功能。

您可以很容易地在 C 中实现功能。但是,我建议您将该功能编写为带有 SWIG 包装器的纯 c,而不是将其编写为 python 的扩展模块。这样,该功能将是可移植的,并且不依赖于 python 网站。

于 2013-09-28T20:27:45.257 回答