django存儲session至redis中


安裝實(shí)驗(yàn)所需模塊

pip3 install django-redis

pip3 install Django==2.1.5

創(chuàng)建django項(xiàng)目

django-admin startproject redis_site
  • 進(jìn)入項(xiàng)目文件夾 redis_site
    可以看到生成了一個manage.py文件以及項(xiàng)目同名的主項(xiàng)目文件夾,進(jìn)入主項(xiàng)目文件可以看到一些初始文件
    創(chuàng)建項(xiàng)目

修改settings.py文件

  • settings.py中配置django cache
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://172.22.0.9:6379",    # redis容器的ip:端口
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",    #客戶端
            "PASSWORD": "",            #設(shè)置redis密碼
#             "PARSER_CLASS": "redis.connection.HiredisParser",    #解析器
#             "SOCKET_TIMEOUT": 10,        #連接超時時間
#             "CONNECTION_POOL_CLASS_KWARGS": {
#                 "max_connections": 2,             #連接池的最大連接數(shù),滿足高并發(fā)需求
#             }
        }
    }
}
  • settings.py文件中加入一行,如下所示:
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

作用:django.contrib.sessions.backends.cache 設(shè)置為存儲引擎

設(shè)置完后如下:


設(shè)置配置文件
  • 創(chuàng)建應(yīng)用 appredis
django-admin startapp appredis
image.png
  • 編寫session視圖函數(shù) appredis 文件夾下的 views.py
    定義setget函數(shù)
from django.shortcuts import render,HttpResponse

def set_session(request):
    request.session['username']='shark'
    request.session['age']=18
    return HttpResponse("設(shè)置sesson成功")

def get_session(request):
    username=request.session['username']
    age = request.session['age']
    return HttpResponse(username+":"+str(age))
image.png
  • 在主路由下的urls.py文件中添加url路由
from django.contrib import admin
from django.urls import path
from appredis import views
urlpatterns = [
    path('set_session/',views.set_session),
    path('get_session/',views.get_session),
    path('admin/', admin.site.urls),
]
  • 確保啟動redis服務(wù)端,默認(rèn)方式啟動
redis-server  /etc/redis/6379.conf

redis-cli  -p  6379

發(fā)送ping命令得到pong即可
image.png
  • 啟動django
python3 manage.py runserver
  • 訪問視圖,設(shè)置一條session信息,存入redis數(shù)據(jù)庫


    image.png
  • 訪問視圖,獲取session信息


    image.png
  • 檢查redis數(shù)據(jù)庫

redis-cli -p 6379

127.0.0.1:7001> keys *
image.png
  • 查看此 key 的值


    image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容