路由器和视图集如何配置其URL?

时间:2019-02-05 05:28:48

标签: django django-rest-framework django-rest-viewsets

我正在阅读一长段代码。并停留在路由器和视图集如何自动配置其URL上。 例如。 views.py文件为:

if (data)
{
    let lastEpisode = data.items[data.items.length - 1];
    this.episodes.push(lastEpisode);
...
}

与路由器对应的网址是:

class UserViewSet(viewsets.ModelViewSet):
     authentication_classes = (BasicAuthentication,SessionAuthentication)
     permission_classes = (IsAuthenticated,)
     serializer_class = UserSerializer
     queryset = User.objects.all()

在上述情况下,视图集中不同动作的相应URL是什么,例如,视图集djangorestframework文档中提到的列表,创建,检索,更新,partial_update和销毁:http://www.tomchristie.com/rest-framework-2-docs/api-guide/viewsets

1 个答案:

答案 0 :(得分:0)

注册视图集时,将为上述情况生成以下网址格式。

router.register(prefix='users', viewset=views.UserViewSet, basename='user')

它遵循以下正则表达式模式

# Regex for list
r'^{prefix}{trailing_slash}$'
# Regex for detail
r'^{prefix}/{lookup}{trailing_slash}$'

1。列表路由器允许http之类的get方法来检索资源,而post则可以创建资源。
2.细节路由器允许http之类的get方法来检索资源数据,put以更新资源数据,patch以部分更新资源,{ {1}}删除资源。

我们还可以在使用delete生成动态网址时传递一个额外的关键字参数format

上述情况的网址格式

reverse

参考:https://github.com/encode/django-rest-framework/blob/master/rest_framework/routers.py