django连接django_redis后会顶替原memcache数据库 django使用django_redis缓存数据库是通过内存管理来操作,所以需要导入django的内存管理cache补充: 原生redis不能存储drf序列化的结果,因为其结果不是字符串类型,所以使用django_redis可以将django_redis理解为是redis的辅助工具,可以将drf序列化后的结果存入redis库中
import os, django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffyapi.settings.dev") django.setup() from django.core.cache import cache from user.models import User from rest_framework.serializers import ModelSerializer class UserModelSerializer(ModelSerializer): class Meta: model = User fields = ['username', 'password'] # 获取用户对象 user_obj = User.objects.all().first() # 序列化 user_data = UserModelSerializer(user_obj).data print(user_data) # {'username': 'admin', 'password': 'pbkdf2_sha256$0oIWjJbH98M$tbYJl1ja25oSXOxv8WW8I8fxsb3/tZgbtgcDhUbTyuQ='} print(type(user_data)) # <class 'rest_framework.utils.serializer_helpers.ReturnDict'> # 存入redis内存数据库 cache.set(user_obj.username, user_data , 10) # 参数: key, value, 过期时间/秒 # 取出res = cache.get(user_obj.username) print(res) # {'username': 'admin', 'password': 'pbkdf2_sha256$IWjJbH98M$tbYJl1ja25oSXOxv8WW8I8fxsb3/tZgbtgcDhUbTyuQ='} print(type(res)) # <class 'dict'>