如何在 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 就可以了并将 myparam 和 someotherparam 传递给 request.GET
字典。
您定义的 URL 模式将只匹配以 /expire-room/some-room/ 开头的 URLs,其中 some-room
是任何字符串.
我有一个 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 就可以了并将 myparam 和 someotherparam 传递给 request.GET
字典。
您定义的 URL 模式将只匹配以 /expire-room/some-room/ 开头的 URLs,其中 some-room
是任何字符串.