当前位置: 首页>>代码示例>>Python>>正文


Python cache.get_or_set方法代码示例

本文整理汇总了Python中django.core.cache.cache.get_or_set方法的典型用法代码示例。如果您正苦于以下问题:Python cache.get_or_set方法的具体用法?Python cache.get_or_set怎么用?Python cache.get_or_set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在django.core.cache.cache的用法示例。


在下文中一共展示了cache.get_or_set方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: user_board_listing

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def user_board_listing(request, account_id):
    """Return a paginated board listing view for account with account_id."""
    metric_timeout_seconds = 60 * 2

    queries = {
        # default to boards contributed to
        None: lambda x: ('contributed to', user_boards_contributed(x, viewing_user=request.user)),
        'created': lambda x: ('created', user_boards_created(x, viewing_user=request.user)),
        'evaluated': lambda x: ('evaluated', user_boards_evaluated(x, viewing_user=request.user)),
        'contribute': lambda x: ('contributed to', user_boards_contributed(x, viewing_user=request.user)),
    }

    user = get_object_or_404(User, pk=account_id)
    query = request.GET.get('query')
    verb, board_list = queries.get(query, queries[None])(user)
    desc = _('List of intelligence boards user {username} has {verb}').format(username=user.username, verb=verb)
    context = {
        'user': user,
        'boards': make_paginator(request, board_list),
        'contributors': cache.get_or_set('contributor_count', generate_contributor_count(), metric_timeout_seconds),
        'evaluators': cache.get_or_set('evaluator_count', generate_evaluator_count(), metric_timeout_seconds),
        'meta_description': desc,
        'verb': verb
    }
    return render(request, 'boards/user_boards.html', context) 
开发者ID:twschiller,项目名称:open-synthesis,代码行数:27,代码来源:boards.py

示例2: _load_user_dn

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def _load_user_dn(self):
        """
        Populates self._user_dn with the distinguished name of our user.

        This will either construct the DN from a template in
        AUTH_LDAP_USER_DN_TEMPLATE or connect to the server and search for it.
        If we have to search, we'll cache the DN.

        """
        if self._using_simple_bind_mode():
            self._user_dn = self._construct_simple_user_dn()
        else:
            if self.settings.CACHE_TIMEOUT > 0:
                cache_key = valid_cache_key(
                    "django_auth_ldap.user_dn.{}".format(self._username)
                )
                self._user_dn = cache.get_or_set(
                    cache_key, self._search_for_user_dn, self.settings.CACHE_TIMEOUT
                )
            else:
                self._user_dn = self._search_for_user_dn() 
开发者ID:django-auth-ldap,项目名称:django-auth-ldap,代码行数:23,代码来源:backend.py

示例3: test_get_or_set_version

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def test_get_or_set_version(self):
        msg_re = r"get_or_set\(\) missing 1 required positional argument: 'default'"
        cache.get_or_set("brian", 1979, version=2)

        with pytest.raises(TypeError, match=msg_re):
            cache.get_or_set("brian")

        with pytest.raises(TypeError, match=msg_re):
            cache.get_or_set("brian", version=1)

        assert cache.get("brian", version=1) is None
        assert cache.get_or_set("brian", 42, version=1) == 42
        assert cache.get_or_set("brian", 1979, version=2) == 1979
        assert cache.get("brian", version=3) is None

    # Modified Django tests 
开发者ID:adamchainz,项目名称:django-mysql,代码行数:18,代码来源:test_cache.py

示例4: category_view

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def category_view(request, slug):
    # If getting by slug fails, also try to get it by name.
    try:
        category = BuyersGuideProductCategory.objects.get(slug=slug)
    except ObjectDoesNotExist:
        category = get_object_or_404(BuyersGuideProductCategory, name__iexact=slug)

    key = f'products_category__{slug.replace(" ", "_")}'
    products = cache.get_or_set(
        key,
        lambda: [p.to_dict() for p in Product.objects.filter(product_category__in=[category]).distinct()],
        86400
    )

    products = filter_draft_products(request, products)

    return render(request, 'category_page.html', {
        'categories': BuyersGuideProductCategory.objects.all(),
        'category': category,
        'products': products,
        'mediaUrl': MEDIA_URL,
    }) 
开发者ID:mozilla,项目名称:foundation.mozilla.org,代码行数:24,代码来源:views.py

示例5: about

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def about(request):
    """Information about the current site, its goals, and what content is loaded"""
    # Provider counts
    providers = cache.get_or_set(CACHE_STATS_NAME, [], CACHE_STATS_DURATION)
    if not providers:
        for provider in sorted(settings.PROVIDERS.keys()):
            s = Search()
            q = Q('term', provider=provider)
            s = s.query(q)
            response = s.execute()
            if response.hits.total > 0:
                data = settings.PROVIDERS[provider]
                total = intcomma(response.hits.total)
                data.update({'hits': total})
                providers.append(data)
        # All results
        s = Search()
        response = s.execute()
        total = intcomma(response.hits.total)
        providers.append({'display_name': 'Total', 'hits': total})
        cache.set(CACHE_STATS_NAME, providers)
    return render(request, "about.html", {'providers': providers}) 
开发者ID:cc-archive,项目名称:open-ledger,代码行数:24,代码来源:site_views.py

示例6: board_listing

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def board_listing(request):
    """Return a paginated board listing view showing all boards and their popularity."""
    board_list = Board.objects.user_readable(request.user).order_by('-pub_date')
    metric_timeout_seconds = 60 * 2
    desc = _('List of intelligence boards on {name} and summary information').format(name=get_current_site(request).name)  # nopep8
    context = {
        'boards': make_paginator(request, board_list),
        'contributors': cache.get_or_set('contributor_count', generate_contributor_count(), metric_timeout_seconds),
        'evaluators': cache.get_or_set('evaluator_count', generate_evaluator_count(), metric_timeout_seconds),
        'meta_description': desc,
    }
    return render(request, 'boards/boards.html', context) 
开发者ID:twschiller,项目名称:open-synthesis,代码行数:14,代码来源:boards.py

示例7: _config

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def _config(self):
        key = utils.make_template_fragment_key("{}.{}.{}".format(
            self.request.user.id, self.model_name, 'list'))
        data = cache.get_or_set(key, 
            get_user_config(self.request.user, 'list', self.model), 180)
        return data 
开发者ID:Wenvki,项目名称:django-idcops,代码行数:8,代码来源:list.py

示例8: list

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def list(self, request):
        key = 'desecapi.views.serials'
        serials = cache.get(key)
        if serials is None:
            serials = get_serials()
            cache.get_or_set(key, serials, timeout=15)
        return Response(serials) 
开发者ID:desec-io,项目名称:desec-stack,代码行数:9,代码来源:views.py

示例9: cached_request

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def cached_request(self, method, token, cache_prefix):
        token_hash = hashlib.sha256(force_bytes(token)).hexdigest()

        func = functools.partial(method, token, None, None)

        return cache.get_or_set(
            f"{cache_prefix}.{token_hash}",
            func,
            timeout=settings.OIDC_BEARER_TOKEN_REVALIDATION_TIME,
        ) 
开发者ID:adfinis-sygroup,项目名称:timed-backend,代码行数:12,代码来源:authentication.py

示例10: get_data

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def get_data(self, **kwargs):  # pylint: disable=arguments-differ
        return cache.get_or_set(API_TIMESTAMP_KEY, time.time, None) 
开发者ID:edx,项目名称:course-discovery,代码行数:4,代码来源:cache.py

示例11: index

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def index(request):
    page = int(request.GET.get('p', 0))
    stories = cache.get_or_set("news-index-%s"%(page), lambda: list(_front_page(page=page)), timeout=TIMEOUT_MEDIUM) # one minute
    if len(stories) < 1 and page != 0:
        back = _one_page_back(request)
        if back:
            return back
    return render(request, 'news/index.html', {'stories': stories, 'hide_text':True, 'page': page, 'rank_start': page*settings.PAGING_SIZE}) 
开发者ID:sebst,项目名称:pythonic-news,代码行数:10,代码来源:views.py

示例12: show

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def show(request):
    page = int(request.GET.get('p', 0))
    stories = cache.get_or_set("news-show-%s"%(page), lambda: list(_front_page(page=page, add_filter={'is_show': True})), timeout=TIMEOUT_MEDIUM) # one minute
    if len(stories) < 1 and page != 0:
        back = _one_page_back(request)
        if back:
            return back
    return render(request, 'news/index.html', {'stories': stories, 'hide_text':True, 'page': page, 'rank_start': page*settings.PAGING_SIZE}) 
开发者ID:sebst,项目名称:pythonic-news,代码行数:10,代码来源:views.py

示例13: ask

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def ask(request):
    page = int(request.GET.get('p', 0))
    stories = lambda: list(_front_page(page=page, add_filter={'is_ask': True}))
    stories = cache.get_or_set("news-ask-%s"%(page), stories, timeout=TIMEOUT_MEDIUM) # one minute
    if len(stories) < 1 and page != 0:
        back = _one_page_back(request)
        if back:
            return back
    return render(request, 'news/index.html', {'stories': stories, 'hide_text':True, 'page': page, 'rank_start': page*settings.PAGING_SIZE}) 
开发者ID:sebst,项目名称:pythonic-news,代码行数:11,代码来源:views.py

示例14: newest

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def newest(request): # Done
    page = int(request.GET.get('p', 0))
    add_filter = {}
    add_q = []
    if 'submitted_by' in request.GET.keys():
        try:
            submitted_by = CustomUser.objects.get_by_natural_key(request.GET['submitted_by'])
            add_filter['user'] = submitted_by
        except CustomUser.DoesNotExist:
            raise Http404()
    if 'upvoted_by' in request.GET.keys():
        try:
            assert request.user.is_authenticated
            assert request.user.username == request.GET['upvoted_by']
        except AssertionError:
            return HttpResponseForbidden()
        add_filter['pk__in'] = Vote.objects.filter(vote=1, user=request.user).values('item')
        add_q.append(~Q(user=request.user))
    if 'site' in request.GET.keys():
        add_filter['domain'] = request.GET['site']
    stories = lambda: list(_newest(page=page, add_filter=add_filter, add_q=add_q))
    stories = cache.get_or_set("news-newest-%s"%(page), stories, timeout=TIMEOUT_SHORT) # two seconds
    if len(stories) < 1 and page != 0:
        back = _one_page_back(request)
        if back:
            return back
    return render(request, 'news/index.html', {'stories': stories, 'hide_text':True, 'page': page, 'rank_start': page*settings.PAGING_SIZE}) 
开发者ID:sebst,项目名称:pythonic-news,代码行数:29,代码来源:views.py

示例15: observer_evaluate

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import get_or_set [as 别名]
def observer_evaluate(self, message):
        """Execute observer evaluation on the worker or throttle."""
        observer_id = message['observer']
        throttle_rate = get_queryobserver_settings()['throttle_rate']
        if throttle_rate <= 0:
            await self._evaluate(observer_id)
            return

        cache_key = throttle_cache_key(observer_id)
        try:
            count = cache.incr(cache_key)
            # Ignore if delayed observer already scheduled.
            if count == 2:
                await self.channel_layer.send(
                    CHANNEL_MAIN,
                    {
                        'type': TYPE_POLL,
                        'observer': observer_id,
                        'interval': throttle_rate,
                    },
                )
        except ValueError:
            count = cache.get_or_set(cache_key, default=1, timeout=throttle_rate)
            # Ignore if cache was set and increased in another thread.
            if count == 1:
                await self._evaluate(observer_id) 
开发者ID:genialis,项目名称:django-rest-framework-reactive,代码行数:28,代码来源:consumers.py


注:本文中的django.core.cache.cache.get_or_set方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。