如何在 django rest 框架的 url 中设置查询参数?

How can I set query params in a url of django rest framework?

我有一个 API 我需要从 Redis 的缓存中删除一些东西 因此,我构建了一个视图并将其同步到 url,但我一直收到 HTTP_404(未找到)。

class ExpireRoom(APIView):
    permission_classes = (IsAuthenticated, )

    def delete(self, request, format=None):
        room_manager = RoomManager()
        room_identifier = self.kwargs['room_identifier']
        is_success = room_manager.delete(room_identifier)
        if is_success:
            return Response(status=status.HTTP_200_OK)
        else:
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)

这是我在 urls.py 中的 url:

urlpatterns = [
    url(r'^expire-room/(?P<room_identifier>\w+)/$', 
        ExpireRoom.as_view(),
        name='core_ExpireRoom_deletingRoom')
]

不确定 URL 您请求的是什么,但您的问题标题表明您正在传递查询参数。

查询参数不是 URL 路径的一部分,即您不需要在 url 模式中 pre-define 它们。如果你有 /expire-room/ 的模式,那么 /expire-room/?myparam=hello&someotherparam=world 就可以了并将 myparamsomeotherparam 传递给 request.GET 字典。

您定义的 URL 模式将只匹配以 /expire-room/some-room/ 开头的 URLs,其中 some-room 是任何字符串.