Django基礎013--redis開發
阿新 • • 發佈:2020-09-14
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)