python类NotFound()的实例源码

versioning.py 文件源码 项目:sdining 作者: Lurance 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def determine_version(self, request, *args, **kwargs):
        resolver_match = getattr(request, 'resolver_match', None)
        if resolver_match is None or not resolver_match.namespace:
            return self.default_version

        # Allow for possibly nested namespaces.
        possible_versions = resolver_match.namespace.split(':')
        for version in possible_versions:
            if self.is_allowed_version(version):
                return version
        raise exceptions.NotFound(self.invalid_version_message)
versioning.py 文件源码 项目:sdining 作者: Lurance 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def determine_version(self, request, *args, **kwargs):
        hostname, separator, port = request.get_host().partition(':')
        match = self.hostname_regex.match(hostname)
        if not match:
            return self.default_version
        version = match.group(1)
        if not self.is_allowed_version(version):
            raise exceptions.NotFound(self.invalid_version_message)
        return version

    # We don't need to implement `reverse`, as the hostname will already be
    # preserved as part of the REST framework `reverse` implementation.
versioning.py 文件源码 项目:sdining 作者: Lurance 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def determine_version(self, request, *args, **kwargs):
        version = request.query_params.get(self.version_param, self.default_version)
        if not self.is_allowed_version(version):
            raise exceptions.NotFound(self.invalid_version_message)
        return version
pagination.py 文件源码 项目:sdining 作者: Lurance 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def paginate_queryset(self, queryset, request, view=None):
        """
        Paginate a queryset if required, either returning a
        page object, or `None` if pagination is not configured for this view.
        """
        page_size = self.get_page_size(request)
        if not page_size:
            return None

        paginator = self.django_paginator_class(queryset, page_size)
        page_number = request.query_params.get(self.page_query_param, 1)
        if page_number in self.last_page_strings:
            page_number = paginator.num_pages

        try:
            self.page = paginator.page(page_number)
        except InvalidPage as exc:
            msg = self.invalid_page_message.format(
                page_number=page_number, message=six.text_type(exc)
            )
            raise NotFound(msg)

        if paginator.num_pages > 1 and self.template is not None:
            # The browsable API should display pagination controls.
            self.display_page_controls = True

        self.request = request
        return list(self.page)
pagination.py 文件源码 项目:django-querysetsequence 作者: percipient 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def decode_cursor(self, request):
        """
        Given a request with a cursor, return a `Cursor` instance.

        Differs from the standard CursorPagination to handle a tuple in the
        position field.
        """
        # Determine if we have a cursor, and if so then decode it.
        encoded = request.query_params.get(self.cursor_query_param)
        if encoded is None:
            return None

        try:
            querystring = b64decode(encoded.encode('ascii')).decode('ascii')
            tokens = urlparse.parse_qs(querystring, keep_blank_values=True)

            offset = tokens.get('o', ['0'])[0]
            # This was hard-coded until Django REST Framework 3.4.0.
            try:
                offset_cutoff = self.offset_cutoff
            except AttributeError:
                offset_cutoff = 1000
            offset = _positive_int(offset, cutoff=offset_cutoff)

            reverse = tokens.get('r', ['0'])[0]
            reverse = bool(int(reverse))

            # The difference. Don't get just the 0th entry: get all entries.
            position = tokens.get('p', None)
        except (TypeError, ValueError):
            raise NotFound(self.invalid_cursor_message)

        return Cursor(offset=offset, reverse=reverse, position=position)
test_pagination.py 文件源码 项目:django-querysetsequence 作者: percipient 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_invalid_cursor(self):
        request = Request(factory.get('/', {'cursor': '123'}))
        with self.assertRaises(exceptions.NotFound):
            self.pagination.paginate_queryset(self.queryset, request)
views.py 文件源码 项目:service-notifications 作者: rehive 项目源码 文件源码 阅读 60 收藏 0 点赞 0 评论 0
def get(self, request, *args, **kwargs):
        company = request.user.company
        notification_id = kwargs['notification_id']

        try:
            note = Notification.objects.get(company=company, id=notification_id)
        except Notification.DoesNotExist:
            raise exceptions.NotFound()

        serializer = self.get_serializer(note)
        return Response({'status': 'success', 'data': serializer.data})
views.py 文件源码 项目:service-notifications 作者: rehive 项目源码 文件源码 阅读 49 收藏 0 点赞 0 评论 0
def patch(self, request, *args, **kwargs):
        company = request.user.company
        notification_id = kwargs['notification_id']

        try:
            note = Notification.objects.get(company=company, id=notification_id)
        except Notification.DoesNotExist:
            raise exceptions.NotFound()

        serializer = self.get_serializer(note, data=request.data, partial=True)
        serializer.is_valid(raise_exception=True)
        instance = serializer.save()
        return Response({'status': 'success', 'data': serializer.data})
views.py 文件源码 项目:service-notifications 作者: rehive 项目源码 文件源码 阅读 57 收藏 0 点赞 0 评论 0
def delete(self, request, *args, **kwargs):
        company = request.user.company
        notification_id = kwargs['notification_id']

        try:
            note = Notification.objects.get(company=company, id=notification_id)
        except Notification.DoesNotExist:
            raise exceptions.NotFound()

        serializer = self.get_serializer(note)
        instance = serializer.delete()
        return Response({'status': 'success'})
views.py 文件源码 项目:service-notifications 作者: rehive 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def get(self, request, *args, **kwargs):
        company = request.user.company
        log_id = kwargs['log_id']

        try:
            log = NotificationLog.objects.get(notification__company=company, 
                id=log_id)
        except NotificationLog.DoesNotExist:
            raise exceptions.NotFound()

        serializer = self.get_serializer(log)
        return Response({'status': 'success', 'data': serializer.data})
views.py 文件源码 项目:service-notifications 作者: rehive 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def get(self, request, *args, **kwargs):
        company = request.user.company
        notification_id = kwargs['notification_id']

        try:
            note = Notification.objects.get(company=company, id=notification_id,
                preference_enabled=True)
        except Notification.DoesNotExist:
            raise exceptions.NotFound()

        serializer = self.get_serializer(note)
        return Response({'status': 'success', 'data': serializer.data})
views.py 文件源码 项目:buildnumber.io 作者: ldiqual 项目源码 文件源码 阅读 16 收藏 0 点赞 0 评论 0
def get_last_build(request, package_name, version=None):

    account = request.user
    package = get_object_or_404(Package, name=package_name, account=account)
    last_build = package.builds.filter(version=version).order_by('-build_number').first()

    if not last_build:
        raise exceptions.NotFound("Couldn't find a build for this package name")

    # Serialize the new build
    serializer = BuildSerializer(last_build)
    response_data = serializer.data.copy()
    response_data.update(last_build.extra)

    return Response(response_data)
versioning.py 文件源码 项目:jianshu-api 作者: strugglingyouth 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def determine_version(self, request, *args, **kwargs):
        version = kwargs.get(self.version_param, self.default_version)
        if not self.is_allowed_version(version):
            raise exceptions.NotFound(self.invalid_version_message)
        return version
versioning.py 文件源码 项目:jianshu-api 作者: strugglingyouth 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def determine_version(self, request, *args, **kwargs):
        resolver_match = getattr(request, 'resolver_match', None)
        if (resolver_match is None or not resolver_match.namespace):
            return self.default_version
        version = resolver_match.namespace
        if not self.is_allowed_version(version):
            raise exceptions.NotFound(self.invalid_version_message)
        return version
versioning.py 文件源码 项目:jianshu-api 作者: strugglingyouth 项目源码 文件源码 阅读 33 收藏 0 点赞 0 评论 0
def determine_version(self, request, *args, **kwargs):
        hostname, seperator, port = request.get_host().partition(':')
        match = self.hostname_regex.match(hostname)
        if not match:
            return self.default_version
        version = match.group(1)
        if not self.is_allowed_version(version):
            raise exceptions.NotFound(self.invalid_version_message)
        return version

    # We don't need to implement `reverse`, as the hostname will already be
    # preserved as part of the REST framework `reverse` implementation.
versioning.py 文件源码 项目:jianshu-api 作者: strugglingyouth 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def determine_version(self, request, *args, **kwargs):
        version = request.query_params.get(self.version_param, self.default_version)
        if not self.is_allowed_version(version):
            raise exceptions.NotFound(self.invalid_version_message)
        return version
pagination.py 文件源码 项目:jianshu-api 作者: strugglingyouth 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def paginate_queryset(self, queryset, request, view=None):
        """
        Paginate a queryset if required, either returning a
        page object, or `None` if pagination is not configured for this view.
        """
        page_size = self.get_page_size(request)
        if not page_size:
            return None

        paginator = self.django_paginator_class(queryset, page_size)
        page_number = request.query_params.get(self.page_query_param, 1)
        if page_number in self.last_page_strings:
            page_number = paginator.num_pages

        try:
            self.page = paginator.page(page_number)
        except InvalidPage as exc:
            msg = self.invalid_page_message.format(
                page_number=page_number, message=six.text_type(exc)
            )
            raise NotFound(msg)

        if paginator.num_pages > 1 and self.template is not None:
            # The browsable API should display pagination controls.
            self.display_page_controls = True

        self.request = request
        return list(self.page)
versioning.py 文件源码 项目:munch-core 作者: crunchmail 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def determine_version(self, request, *args, **kwargs):
        resolver_match = getattr(request, 'resolver_match', None)
        if (resolver_match is None or not resolver_match.namespace):
            return self.default_version
        version = resolver_match.namespace.split(':')[0]
        if not self.is_allowed_version(version):
            raise exceptions.NotFound(self.invalid_version_message)
        return version
movie_search.py 文件源码 项目:popcorn-backend 作者: We-Lab 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def get_queryset(self):
        movie_pk = self.kwargs['pk']
        result = Movie.objects.filter(pk=movie_pk)
        if result:
            return result
        raise NotFound('?? ??? ????.')
views.py 文件源码 项目:experiments-viewer 作者: mozilla 项目源码 文件源码 阅读 67 收藏 0 点赞 0 评论 0
def metrics(request):
    metrics = Metric.objects.all().order_by('name')

    ds = request.query_params.get('ds')
    if ds:
        # Further filter metrics by dataset.
        metrics = (metrics.filter(collection__dataset__slug=ds)
                          .distinct('id', 'name'))
        if not metrics:
            raise NotFound('No data set with given dataset found.')

    return Response([MetricSerializer(m).data for m in metrics])


问题


面经


文章

微信
公众号

扫码关注公众号