0

我有一个使用请求库来调用 Web 服务的应用程序。在 django 上,我使用一个表来使用标准 django_session 库来保持会话。

我注意到,每次请求库触发调用时,我都会在数据库中创建一条新记录。我觉得这很奇怪,因为我没有(明确地)使用请求会话,而且我的大多数调用都是单个 GET 调用,不需要任何持久性。

其他人有这个问题吗?

4

2 回答 2

2

django.contrib.sessions.middleware.SessionMiddleware将为每个请求创建一个新会话。

如果您想禁用此行为,请考虑替换django.contrib.sessions.middleware.SessionMiddleware为自定义中间件,该中间件可扩展django.contrib.sessions.middleware.SessionMiddleware但可防止在您不想要会话的情况下创建会话。

这个答案提供了一个如何做到这一点的例子。它解析request.path_info以确定是否应该创建会话,但您可以使用许多不同的技术,例如向您的请求添加自定义标头,包括 post 变量等。

于 2012-10-25T15:35:08.017 回答
1

原来我打开了这个设置

SESSION_SAVE_EVERY_REQUEST=True

当我开始进行会话时,我想确保安全,以确保没有任何东西掉入裂缝。原来这是将空会话信息写入数据库。

于 2013-06-07T07:02:46.213 回答