예제 #1
0
 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
예제 #2
0
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))
예제 #3
0
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
예제 #4
0
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
예제 #5
0
파일: common.py 프로젝트: xianzhishenqie/pg
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),
            )
예제 #6
0
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))
예제 #7
0
    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
예제 #8
0
파일: cache.py 프로젝트: xianzhishenqie/pg
 def get_version_key(cls, name):
     return md5('%s:version' % name)