Django基础013--redis开发

1.redis配置

在settings.py中加入以下代码块,可支持多个redis的配置

 1 CACHES = {
 2     "default": {
 3         "BACKEND": "django_redis.cache.RedisCache",
 4         "LOCATION": "redis://127.0.0.1:6379/1",
 5         "OPTIONS": {
 6             "CLIENT_CLASS": "django_redis.client.DefaultClient",
 7             "CONNECTION_POOL_KWARGS": {"max_connections": 100},
 8             # "PASSWORD": "dsx",  # 密码
 9             # 这个redis是返回数据是bytes类型的,登录的时候user用pickle序列化的,存的是二进制,取出来的也是二进制
10         }
11     },
12     "redis2": {
13         "BACKEND": "django_redis.cache.RedisCache",
14         "LOCATION": "redis://127.0.0.1:6379/2",
15         "OPTIONS": {
16             "CLIENT_CLASS": "django_redis.client.DefaultClient",
17             "CONNECTION_POOL_KWARGS": {"max_connections": 100, 'decode_responses': True},
18             # 这个redis配置,从redis里面取到数据后会自动转成字符串,不是bytes类型
19             # "PASSWORD": "HK139bc&*",  # 密码
20         }
21 
22     }
23 }

2.连接redis服务器

#连接默认的redis
redis = django_redis.get_redis_connection()
#连接指定的redis
redis = django_redis.get_redis_connection('redis2')#创建redis连接

3.新增

 1 class Login(View):
 2     def post(self,request):
 3         '''
 4         1.验证前端传递的值是否符合规则,forms
 5         2.登录成功后需要有标识,标识token存在redis
 6         :param request:
 7         :return:
 8         '''
 9         form_obj = forms.LoginForm(request.POST)
10         if form_obj.is_valid():
11             #数据验证通过后,保存token
12             #token生成规则:用户名+时间戳,再md5加密
13             form_data = form_obj.cleaned_data
14             username = form_data.get('username')
15             user = form_data.get('user')
16             token = tools.md5('%s%s'%(username,time.time()))
17             redis = django_redis.get_redis_connection()#创建redis连接
18             redis.set(const.SESSION+token,pickle.dumps(user),const.EXIT_TIME)
19             return NbResponse(token=token,user=user.name,user_id=user.id)
20         else:
21             return NbResponse(-1,form_obj.error_formate)

4.获取数据

redis = django_redis.get_redis_connection()
b_data = redis.get(const.SESSION+token)

5.删除数据

redis = django_redis.get_redis_connection()
redis.delete(const.SESSION+request.token)

 

posted @ 2020-09-14 21:35  cjxxl1213  阅读(127)  评论(0编辑  收藏  举报