将python桌面应用程序转换为web应用程序时的状态注意事项?

将python桌面应用程序转换为web应用程序时的状态注意事项?,python,django,apache,web-applications,desktop-application,Python,Django,Apache,Web Applications,Desktop Application,我不知道在将桌面应用程序转换为web应用程序时应该考虑哪些因素。我们有一个用python编写的桌面应用程序,使用用于GUI的wxPython库,它是一个非常传统的应用程序,设置主窗口并调用app.Mainloop()方法来维持GUI并响应事件。应用程序本身是一个配置实用程序,它只接受文件并允许用户对其进行配置。当然,程序会跟踪所做的所有更改,并根据这些更改对事件作出响应 我打算使用托管在Apache服务器上的Django框架将此实用程序作为更大应用程序的一部分提供服务,并期望许多用户同时使用它。

我不知道在将桌面应用程序转换为web应用程序时应该考虑哪些因素。我们有一个用python编写的桌面应用程序,使用用于GUI的wxPython库,它是一个非常传统的应用程序,设置主窗口并调用
app.Mainloop()
方法来维持GUI并响应事件。应用程序本身是一个配置实用程序,它只接受文件并允许用户对其进行配置。当然,程序会跟踪所做的所有更改,并根据这些更改对事件作出响应

我打算使用托管在Apache服务器上的Django框架将此实用程序作为更大应用程序的一部分提供服务,并期望许多用户同时使用它。正如预期的那样,一旦我删除了
app.MainLoop()
指令,运行应用程序只需遍历代码一次就可以退出。这显然不是我需要的,应用程序需要记住状态

到目前为止,我已经开始识别所有GUI代码并将其与应用程序的核心分离,以便有效地重用核心,并决定使用诸如jQuery之类的框架以JavaScript编写UI来处理GUI事件等。存储状态的两个明显的选项是
会话
数据库
,但我有点被卡住了,无法从整体上了解这一切是如何工作的。在Django视图方面,请求之间会发生什么?如果有人能告诉我整个工作流程,我将不胜感激


谢谢。

这个问题有点模糊:一些细节,甚至一些代码,都会有所帮助

将其作为桌面应用程序运行和在web上运行有两个不同之处。缺少状态是一个问题,但更重要的区别似乎是每个用户的配置。您需要某种方式来存储每个用户的配置

你把它放在哪里取决于你想要它的持久性:会话对于需要在实际会话中持久化的东西来说是很好的,即用户一次使用应用程序的时间,但不一定需要在该时间之外持久化,或者如果用户从新机器登录。否则,将其显式存储在附加到用户记录的数据库中是一个好方法


就“请求之间发生的事情”而言,布鲁诺指出的答案是“什么都没有”。每个请求实际上都是一个空白状态:保持状态的唯一方法是使用cookie,cookie由会话框架抽象。你肯定不想在你的应用程序中保持任何类型的全局或模块级别的每个用户状态,因为这是行不通的:任何状态都是全局的,因此适用于所有用户,因此显然不是你想要的。

这是一个非常广泛的话题。无论如何:您似乎对HTTP协议以及web应用程序与传统GUI应用程序的不同之处没有清楚的了解。为了回答您的最后一个问题(“根据Django视图,请求之间会发生什么”),答案简单明了:绝对没有什么,服务器只会等待下一个请求。感谢您的回答,它确实帮助我消除了一些疑惑。“Session”听起来绝对像我要找的。。。