我必须设置一个程序,它从widget / gui中读取一些参数,根据数据库值和输入计算一些东西,最后通过ftp将一些ascii文件发送到远程服务器。
一般来说,我会建议一个python程序来完成任务。编写一个Qt小部件作为gui(交互式更改视图,将数字放入表格,设置复选框,在各个层之间切换 - 从未在python中执行过复杂的操作,但在IDL中使用事件处理等),设置数据类具有修改,既可以创建具有给定约定的ascii文件,也可以通过ftp将文件发送到某个远程服务器。
然而,由于我的公司是一群Windows用户,每个人都坐在他们的个人桌面上,在每台机器上安装python和所有必要的库都会让人痛苦。
此外,在未来的版本中,该程序应该变得聪明并且每周7天每天24小时进行一些优化。因此,将它放到服务器是有意义的。由于我个人更喜欢使用Linux,因此已经使用Ubuntu服务器设置了服务器。
现在的想法是在服务器上运行我的应用程序。但是,用户如何访问和控制程序? 对于每个人来说,访问像普通控制面板这样的最简单的方法就是浏览器。我必须确保一次只有一个人一次向同一个单元发送信号,但这应该可以通过数据库中的标志来实现。 经过一些谷歌搜索,在QtWebKit旁边,django似乎是这项任务的首选。但...
我可以在我的网络应用程序下运行一个完整的python程序吗? django是正确的工具吗?
如前所述,在(中间)未来(〜1年),我们可能不得不实施一些计算成本高昂的任务。那么它是否也可以在正常的python中使用C?
我的另一个问题是开发。为了提高工作效率,我们必须小步前进。我可以先创建常规的python类,以后可以导入到我的Web应用程序吗? (同样的问题适用于小部件/ QT?)
最后:还有更好的方法吗?任何标准,任何参考文献?
答案 0 :(得分:0)
Django是该网站的一个很好的候选人,但是:
从网站运行繁重的功能不是一个好主意。它应该在一个单独的过程中发生。
所有函数都应该是异步的,I.E。你永远不应该等待一些事情来完成。
我个人建议使用消息队列编写一个单独的进程,网站只会询问该进程的状态,并始终立即向用户显示结果
ZeroMQ或Celery对于实现功能非常有用。
您可以非常轻松地在C中实现功能。不过我建议您使用SWIG包装器将该功能编写为纯c,而不是将其编写为python的扩展模块。这样,该功能将是可移植的,而不依赖于python网站。