zoukankan      html  css  js  c++  java
  • Django之redis-session

    一:安装

    pip3 install django-redis-sessions
    
    #或者
    pip3 install django-redis

    二:存储

    setting.py默认开启session

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',  # 默认开启
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]

    session存储方式

    1:数据库(默认存放在django-session)

    2:缓存

    3:混合存储

    # 存放在数据库中 (默认)
    SESSION_ENGINE='django.contrib.sessions.backends.db'
    
    # 存放在缓存中
    SESSION_ENGINE='django.contrib.sessions.backends.cache'
    
    # 先从缓存中取,如果没有再从数据库中取。
    SESSION_ENGINE='django.contrib.sessions.backends.cached_db'
     

    如果session存储在数据库中,需要在项INSTALLED_APPS中安装Session应用

     三:使用

    settings配置文件

    redis-session配置方式一

    SESSION_ENGINE = 'redis_sessions.session'  # session存储引擎
    
    SESSION_REDIS_HOST = 'localhost'  # redis服务的ip
    
    SESSION_REDIS_PORT = 6379   # redis服务端口号
    
    SESSION_REDIS_DB = 2     # redis中的哪个数据库。 (redis中默认有16个数据库,数据库编号从0开始)
    
    SESSION_REDIS_PASSWORD = ''  # redis服务密码
    
    SESSION_REDIS_PREFIX = 'session_key'   # sessionid键的前缀。

    redis-session配置方式二

    # Django的缓存配置 (用redis做缓存)
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",  #redis存储
            "LOCATION": "redis://127.0.0.1:6379/9", # redis服务器 以及存储位置
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
            }
        }
    }
    
    # 配置session存储 (用Django的默认缓存存储session)
    SESSION_ENGINE = "django.contrib.sessions.backends.cache"
    SESSION_CACHE_ALIAS = "default"   # sessionid中的key

    路由层

    urlpatterns = [
        
        url(r'^set_session/', views.set_session),
        url(r'^get_session/', views.get_session),
    ]

    视图层

    from django.shortcuts import render,HttpResponse
    import redis
    # Create your views here.
    
    
    def get_session(request):
    
        if request.session.has_key('username'):
            username = request.session['username']
            print(username) #  SR
    return HttpResponse(username)
    
    def set_session(request):
        request.session['username'] = 'SR'
        request.session['age'] = 18
        request.session.set_expiry(5)  # 0:表示关闭浏览器过期;None:表示永不过期。 默认两周后过期。
        return HttpResponse('设置session')

     PS:上述redis已经存在该session

  • 相关阅读:
    网站性能在线评估
    如何测试电梯/伞/桌子/笔?
    apk反编译查看源码
    Jmeter(四)-断言/检查点
    【转】Jmeter(三)-简单的HTTP请求(非录制)
    【转】Jmeter(二)-使用代理录制脚本
    [转]Jmeter(一)-精简测试脚本
    CentOS 安装以及配置Apache php mysql
    centOS静态ip设置
    免费DDOS攻击测试工具大合集
  • 原文地址:https://www.cnblogs.com/SR-Program/p/12423761.html
Copyright © 2011-2022 走看看