我有一个使用请求库来调用 Web 服务的应用程序。在 django 上,我使用一个表来使用标准 django_session 库来保持会话。
我注意到,每次请求库触发调用时,我都会在数据库中创建一条新记录。我觉得这很奇怪,因为我没有(明确地)使用请求会话,而且我的大多数调用都是单个 GET 调用,不需要任何持久性。
其他人有这个问题吗?
我有一个使用请求库来调用 Web 服务的应用程序。在 django 上,我使用一个表来使用标准 django_session 库来保持会话。
我注意到,每次请求库触发调用时,我都会在数据库中创建一条新记录。我觉得这很奇怪,因为我没有(明确地)使用请求会话,而且我的大多数调用都是单个 GET 调用,不需要任何持久性。
其他人有这个问题吗?
django.contrib.sessions.middleware.SessionMiddleware
将为每个请求创建一个新会话。
如果您想禁用此行为,请考虑替换django.contrib.sessions.middleware.SessionMiddleware
为自定义中间件,该中间件可扩展django.contrib.sessions.middleware.SessionMiddleware
但可防止在您不想要会话的情况下创建会话。
这个答案提供了一个如何做到这一点的例子。它解析request.path_info
以确定是否应该创建会话,但您可以使用许多不同的技术,例如向您的请求添加自定义标头,包括 post 变量等。
原来我打开了这个设置
SESSION_SAVE_EVERY_REQUEST=True
当我开始进行会话时,我想确保安全,以确保没有任何东西掉入裂缝。原来这是将空会话信息写入数据库。