【问题标题】:Disable sessions in Django在 Django 中禁用会话
【发布时间】:2015-12-06 11:43:49
【问题描述】:

我的网站提供的页面几乎是静态的,并且没有登录用户等。

出于性能原因,我想完全禁用会话(因此 django 不会访问数据库以获取每个请求的会话)。

我从 INSTALLED_APPS 中删除了django.contrib.sessions,我还需要做什么吗?

【问题讨论】:

    标签: python django django-sessions


    【解决方案1】:

    您应该根据此类文章找到如何在 django 中设置会话并从 settings.py 中删除所有内容的文章。 Here is it:

    虽然这应该已经设置并正常工作,但它是 尽管如此,了解哪些 Django 模块提供哪些的好习惯 功能。在会话的情况下,Django 提供了中间件 实现会话功能。

    要检查一切是否正常,请打开 Django 项目的 设置.py 文件。在文件中,找到 MIDDLEWARE_CLASSES 元组。你应该找到 django.contrib.sessions.middleware.SessionMiddleware 模块列为 元组中的字符串 - 如果不这样做,现在将其添加到元组中。它是 SessionMiddleware 中间件,它可以创建独特的 sessionid cookie。

    SessionMiddleware 旨在以不同的方式灵活工作 存储会话信息。有很多方法可以 采取 - 您可以将所有内容存储在文件、数据库中,甚至 在缓存中。最直接的方法是使用 django.contrib.sessions 应用程序将会话信息存储在 Django 模型/数据库(特别是模型 django.contrib.sessions.models.Session)。要使用这种方法,您将 还需要确保 django.contrib.sessions 在 Django 项目的 settings.py 文件的 INSTALLED_APPS 元组。如果你 现在添加应用程序,你需要同步你的数据库 使用 python manage.py syncdb 命令将新表添加到 你的数据库。

    看来您也应该删除中间件。也许没有必要,但如果你使用的是静态应用程序,那么根据会话删除所有内容并没有那么糟糕。

    【讨论】:

    猜你喜欢
    • 2011-05-02
    • 2015-10-13
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 2011-04-11
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多