def get_create_key(self, scene_config): create_key = md5('{}:{}'.format( self.user.id, scene_config.id if scene_config.id else md5(scene_config.json_config), )) return create_key
def _generate_cache_key(view, queryset): view_name = view.__class__.__name__ try: key_str = queryset.query.__str__() except EmptyResultSet: key_str = 'EmptyResultSet' query_data_fields = getattr(view, 'query_data_fields', []) query_data_fields.sort() key_str = '%s:%s' % (key_str, md5(json.dumps(query_data_fields))) cache_key_prefix = view.get_cache_key_prefix() if cache_key_prefix is not None: key_str = '%s:%s' % (cache_key_prefix, key_str) return md5('%s:%s' % (view_name, key_str))
def _exe_key(func, args, kwargs): exe_key = md5('{func}(*{args}, **{kwargs})'.format( func=pickle.dumps(func), args=pickle.dumps(args), kwargs=pickle.dumps(kwargs), )) return exe_key
def get_url_with_version(url): app_name = url.split('/')[2] v_dir = settings.STATIC_V_DIRS[app_name] file_path = os.path.join(v_dir, url.lstrip('/')) if os.path.exists(file_path): modified_time = os.path.getmtime(file_path) modified_time = md5(str(modified_time)) return '%s?%s' % (url, modified_time) return url
def sync_openid(openid): if not openid: return None if not WeUser.objects.filter(openid=openid).exists(): with transaction.atomic(): user = User.objects.create(username=openid) WeUser.objects.create( user=user, openid=openid, openid_key=md5(openid), )
def _generate_cache_key(view, queryset): view_name = view.__class__.__name__ try: key_str = queryset.query.__str__() except EmptyResultSet as e: # 无查询的空对象 key_str = 'EmptyResultSet' cache_key_prefix = view.get_cache_key_prefix() if cache_key_prefix is not None: key_str = '%s:%s' % (cache_key_prefix, key_str) return md5('%s:%s' % (view_name, key_str))
def __new__(cls, obj, root_model): # 序列化数据对象模型类 p_model = pickle.dumps(obj._meta.model) # 根据模型类和主键生成资源唯一标识 resource_key = md5('%s:%s' % (p_model, obj.pk)) # 资源池已有资源直接返回不再新建 if resource_key in cls.p_key_pool: p_key = cls.p_key_pool[resource_key] resource = cls.resource_pool[p_key] else: resource = super(ModelResource, cls).__new__(cls, obj, root_model) # 新建的资源加入资源池和资源表 p_key = str(cls.p_key_counter) cls.p_key_counter += 1 cls.p_key_pool[resource_key] = p_key cls.resource_pool[p_key] = resource cls.model_resources.setdefault(p_model, []).append(resource) # 预设置资源的模型和唯一标识 resource.p_model = p_model resource.p_key = p_key # 预设置资源为未初始化 resource._inited = False return resource
def get_version_key(cls, name): return md5('%s:version' % name)