我有一个使用requests库来调用Web服务的应用程序。在django上,我使用表来使用标准的django_session库来保持会话。
我注意到每次请求库触发呼叫时,我在数据库中都有一条新记录。我发现这很奇怪,因为我没有使用请求会话(显式),而且我的大多数调用都是单个GET调用,不需要任何持久性。
还有其他人有这个问题吗?
答案 0 :(得分:2)
django.contrib.sessions.middleware.SessionMiddleware
将为每个请求创建一个新会话。
如果要禁用此行为,请考虑将django.contrib.sessions.middleware.SessionMiddleware
替换为扩展django.contrib.sessions.middleware.SessionMiddleware
的自定义中间件,但会阻止在不需要的情况下创建会话。
This answer提供了如何执行此操作的示例。它解析request.path_info
以确定是否应创建会话,但您可以使用许多不同的技术,例如向您的请求添加自定义标头,包括post变量等。
答案 1 :(得分:1)
原来我打开了这个设置
SESSION_SAVE_EVERY_REQUEST=True
当我开始学习课程时,我希望能够确保没有任何东西从裂缝中消失。事实证明这是将空的会话信息写入数据库。