在Django中保存动态页面

1 投票
1 回答
596 浏览
提问于 2025-04-17 12:51

我在我的Django应用中有一个页面,用户可以对一张图片进行缩放和拖动。我想保存缩放级别和图片的位置,这样下次我打开这个页面时,图片就能恢复到我上次访问时的状态。

Django的文档里有关于如何设置会话信息的说明,但那是在Python代码中进行的。我不太明白的是,如何在我离开这个页面时执行“更新会话”的代码。

有没有办法让我的保存的会话和Django模板中的JavaScript变量保持同步呢?

1 个回答

2

你需要让你的网页把一些信息发送到服务器,这样服务器才能在会话中更新这些信息。在Django中,会话的工作方式是,它只会把一个会话ID发送到你的网页(通常是通过cookie),然后这个cookie会在你网页的每次请求中被发送回去(cookie是HTTP协议的一部分,由网页浏览器管理)。

模板代码是在服务器上运行的,用来输出HTML和JavaScript,但这些代码实际上并不是在服务器上运行的,模板也不是和服务器实时连接的。仅仅在JavaScript中设置变量是无法把它们发送回服务器的。

不过,你可以通过发送一个请求,比如使用ajax请求,把保存的变量发送到服务器,这样服务器就可以把它们放入会话中,以便后续使用。

jQuery提供了一个卸载事件,可以在用户离开时通知你。你可以绑定这个事件来进行更新。

撰写回答