zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    [转]Annotation手册
    [转]十款非主流操作系统介绍
    关于构造函数及游离块的顺序
    如何申请Google地图API Key
    “请求响应”模式和“事件驱动”模式
    【引用】Linux中硬链接和软链接的区别和联系
    [转]Java代码的静态编译和动态编译中的问题比较
    [转]Java中常用设计模式总结
    GIS名词解释
    [转]比较JSF、Spring MVC、Stripes、Struts2、Tapestry、Wicket
  • 原文地址:https://www.cnblogs.com/cjxxl1213/p/13669539.html
Copyright © 2011-2022 走看看