太坑了,被版本问题坑了好多次,我也是......一万个mmp,安装django-redis-sessions时没指定版本,所以系统默认安装最新版本。但是因为版本不兼容问题,服务器总是报500,还没有错误提示,起初还以为我的配置些写错了,但是对照了好多遍,发现应该不是配置问题,就察觉到版本问题,所以...... 成功了
这个500这不让人省心,一点错误提示都没有,直接500,不知道从哪下手。。。。。。。。。
如果你的服务器也是总报500错误,但就是没有提示,可能你也被版本问题坑到了
1. 首先卸载已经安装的 django-redis-sessions
打开doc窗口输入 pip uninstall django-redis-sessions
2. 重新安装指定版本的 django-redis-sessions==0.5.6
doc窗口输入 pip install django-redis-sessions==0.5.6
3. 顺便说一下配置流程,也为了方便以后自己使用
3.1 redis安装省略,自行查阅
3.2 在doc窗口 安装django-redis,在窗口中输入 pip install django-redis 目前没有发现版本不兼容问题
3.3 在doc窗口 安装django-redis-sessions==0.5.6,在窗口中输入pip install django-redis-sessions==0.5.6
3.4 在项目的settings.py 中配置如下:
# 在settings.py 文件中添加,位置不限
# 配置redis
CACHES = {
"default":{
"BACKEND":"django_redis.cache.RedisCache",
# 此处如果redis在本机,可以用localhost或者127.0.0.1
"LOCATION":"redis://192.168.142.130:8000", # redis端口号,默认6379
"OPTIONS":{
"CLIENT_CLASS":"django_redis.client.DefaultClient",
}
}
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
SESSION_ENGINE = 'redis_sessions.session'
SESSION_REDIS_HOST = '192.168.142.130' # 此处如果redis在本机,可以用localhost或者127.0.0.1
SESSION_REDIS_PORT = 8000 # redis端口号,默认6379
SESSION_REDIS_DB = 0 # 连接redis哪个库0-15 随便指定
SESSION_REDIS_PASSWORD = ''
SESSION_REDIS_PREFIX = 'session'
3.5 添加完配置后,可以去测试项目了
指定应用下的view.py
from django.shortcuts import render,redirect
# Create your views here.
# 首页,游客第一次进入时,显示 欢迎:游客
# 登录后再次重定向到首页,显示 欢迎:用户名(从session中获取,该session存放在redis中)
def index(request):
username = request.session.get('username',"游客")
print("index--username = ",username)
return render(request,'myApp/index.html',{"username":username})
# 跳转到登录页面
def gologin(request):
return render(request,'myApp/login.html')
# 登录 将用户名存到session中,并保存到redis
# 登录后,重定向到首页
def login(request):
username = request.POST.get('username')
print("login--username = ",username)
request.session['username'] = username
# 0:即退出浏览器过期
# 整数:整数S后过期
# None:永不过期
# 默认:两个星期后过期
# request.session.set_expiry(10)
return redirect('/index/')
# 退出登录
from django.contrib.auth import logout
def quit(request):
# 1.清除当前session中的值 推荐使用
# logout(request)
# 2.clear清除session的值
# request.session.clear()
# 3.flush清除session中的值
request.session.flush()
return redirect('/index/')
urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^index/$',views.index,name="index"),
url(r'^gologin/$',views.gologin),
url(r'^login/$',views.login),
url(r'^quit',views.quit),
]
3.6 操作后,redis中数据保存成功 指定db0,成功存入
页面和不重要步骤,省略较多,可能会看不明白,欢迎留言探讨