最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • django如何使用session

    正文概述    2020-08-18   251

    django如何使用session

    首先确认在 MIDDLEWARE_CLASSES中确保它包含'django.contrib.sessions.middleware.SessionMiddleware',如果不想使用session会话可以删除这一项.

    配置session引擎

    默认情况下,django框架会将session数据存储在数据库(django框架中默认创建的model里有存储session的model,这也是为什么在使用前需执行创建数据库操作的原因,使用django.contrib.sessions.models.Session模型)中。从数据库相比其他存储session的方式慢一点,所以可以配置django来存储session到文件系统或者缓存中。

    使用数据库支持的session

    如果你想用数据库存储session,需要添加'django.contrib.sessions' 到你的INSTALLED_APPS设置中。并且创建存储session数据的表。

    使用基于缓存的session

    使用缓存存储session,在性能上会比使用数据库更快。

    使用缓存来存储session必须先进行配置缓存

    缺点:本地内存使用缓存不能长时间保留数据,所以不是好的选择,而且直接使用文件或者数据库比文件或数据库缓存速度快。本地缓存系统不是多进程安全的。 

    使用CACHES中可以定义多个缓存,Django使用默认缓存,若要用其他缓存,可以设置SESSIONCACHEALIAS为该缓存的名字

    配置好缓存之后,有两种缓存可供选择

    对于简单的缓存session,可以设置SESSIONENGINE为'django.contrib.sessions.backends.cache',这正方式就是将数据缓存在内存中,不做持久化存储,如果缓存填满或者缓存服务器重启,缓存数据就可能会被清理掉

    持久化数据缓存就要使用数据库,设置SESSIONENGINE为'django.contrib.sessions.backends.cacheddb',在写数据的时候使用缓存,读取时先读缓存中的数据,如果缓存中数据被清理了,就从数据库中读取

    两种缓存方式都很快,简单的更快一点,因为没有做数据持久化

    特殊说明:在1.7 版之前,cacheddb 永远使用default缓存而不是SESSIONCACHEALIAS。

    使用缓存例子:

    SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
    SESSIONCACHEALIAS = 'default'#表示使用缓存的别名,在CACHES中寻找,下面有default和db1两种选择 
    CACHES = {
    'default': {
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
    'LOCATION': [
    '172.19.26.240:11211',
    '172.19.26.242:11211',
    ]
    },
    'db1': {
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
    'LOCATION': [
    '172.19.26.240:11211',
    '172.19.26.242:11211',
    ]
    }
    }

    附加内容

    CACHES的格式,默认:
    {
    'default':{
    'BACKEND':'django.core.cache.backends.locmen.LocMemCache',
    }
    }


    一个字典包含所有缓存要使用的设置它是一个嵌套字典,其内容将高速缓存别名映射到包含单个高速缓存的选项的字典中。

    CACHES设置必须配置‘default’缓存;还可以指定任何数量的附加高速缓存。如果您正在使用本地内存高速缓存之外的其他高速缓存后端,或者需要定义多个高速缓存,这就需要添加其他高速缓存项。以下高速缓存选项可用。
    BACKEND
    默认值:''(空字符串)
    要使用的缓存后端。内置高速缓存后端是:

    'django.core.cache.backends.db.DatabaseCache'
    'django.core.cache.backends.dummy.DummyCache'
    'django.core.cache.backends.filebased.FileBasedCache'
    'django.core.cache.backends.locmem.LocMemCache'
    'django.core.cache.backends.memcached.MemcachedCache'
    'django.core.cache.backends.memcached.PyLibMCCache'


    通过将BACKEND设置为缓存后端类的完全限定路径(即mypackage.backends.whatever.WhateverCache),您可以使用未随Django提供的缓存后端。 )。

    基于文件的session

    使用基于文件的session,使用SESSIONENGINE为'django.contrib.sessions.backends.file',使用SESSIONFILE_PATH设置文件的位置,如果不设会使用默认存储位置为,它的默认值来自tempfile.gettempdir()的输出,大部分情况是/tmp

    使用基于Cookie的session

    要使用基于Cookie 的会话,请设置SESSIONENGINE 为"django.contrib.sessions.backends.signedcookies"。此时,会话数据的存储将使用Django 的加密签名 工具和SECRET_KEY 设置。
    建议保留SESSIONCOOKIEHTTPONLY 设置为True 以防止从JavaScript 中访问存储的数据。


    起源地下载网 » django如何使用session

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元