drf反向解析url
drf也可以使用反向解析,使用的方式和django的路由反向解析类似。
使用步骤:
- url中通过参数
name
配置视图别名 - 在视图函数中使用drf的
reverse()
方法,反向解析出需要的url
# urls.py
urlpatterns = [
path('mytest/', views.Test.as_view(), name='test') # 通过参数name给视图起别名
]
# urls.py
from rest_framework.reverse import reverse # 导入reverse方法
class Test(APIView):
def get(self, request):
back_info = {
'url': reverse(viewname='test', request=request), # 使用reverse()反向解析出'test'视图别名的url
}
return Response(back_info)
# 反向解析可以在任意视图中解析任意其他视图的url,一般是在某种需要下将反向解析处的url传给前端,用于直接访问。
"""
方法
reverse(viewname, args=None, kwargs=None, request=None, format=None, **extra):
参数:
viewname: 就是urls中通过name参数指定的视图别名
args: 是无名分组时反向解析需要的列表列表
kwargs:是有名分组时反向解析需要的参数字典
request: 是当前请求request
"""