使用django会话表的请求

时间:2012-10-25 13:59:01

标签: python django python-requests

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

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

还有其他人有这个问题吗?

2 个答案:

答案 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

当我开始学习课程时,我希望能够确保没有任何东西从裂缝中消失。事实证明这是将空的会话信息写入数据库。