DefaultRouter
python
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
router.register(r'accounts', AccountViewSet)
urlpatterns = router.urls
这样就可以自动生成如下路由:
^users/$ # list
^users/{pk}/$ # retrieve
^accounts/$ # list
^accounts/{pk}/$ # retrieve
这是app_name.urls

这是主urls
只需要在urlpatterns加上app_name.urls

路由地址就为 /api/bbs/topic/
drf+装饰器,
可以在GET、POST这些方法都已要使用增加新的方法
2.@action(methods=None, detail=None, url_path=None, url_name=None, **kwargs)
methods:此操作响应的HTTP方法名称的列表。默认为“get”。
detail:必需。确定此操作是否适用于实例/细节请求或集合/列表请求。
url_path:定义此操作的url段。默认为装饰的方法的名称。
url_name:定义此操作的内部(reverse)url名称。默认为用下划线修饰的方法的名称替换为破折号。
kwargs:要在视图上设置的其他属性。这个可以用重写viewset level*\u classes设置,相当于“@renderer_classes”等修饰符如何为函数工作-基于API视图。
from rest_framework.decorators import action
@action(methods=['get'], detail=False)
def get_user_list(self, request):
return Response(res, status=status.HTTP_200_OK)
@action(methods=['get'], detail=True)
def get_user_detail(self, request, pk):
return Response(data, status=status.HTTP_200_OK)
3.访问路由xxx/get_user_listxxx/pk/get_user_detail
example

如 我在这个类视图已经写有PUT方法了,我用装饰器增加了一个url与我原有的PUT方法不会重叠。且都在一个类视图下。
RESTful是一种软件架构风格和设计原则,用于构建分布式网络应用程序和Web服务。它是"Representational State Transfer"(表现层状态转化)的缩写,是由Roy Fielding在他的博士论文中首次提出的。
RESTful风格的设计原则旨在使API简单、可伸缩、易于理解和使用。它主要依赖于HTTP协议的基本方法(GET、POST、PUT、PATCH、DELETE等)来对资源进行操作,并使用URL表示资源的层次结构。
以下是RESTful风格的一些主要特点和原则:
-
资源:在RESTful架构中,资源是Web服务的核心,每个资源都有一个唯一的标识符(URI)来表示它。资源可以是数据对象、图片、视频等。
-
HTTP方法:RESTful API使用HTTP方法(GET、POST、PUT、PATCH、DELETE等)来执行对资源的不同操作。每个HTTP方法都对应于特定的操作,例如GET用于获取资源,POST用于创建资源,PUT用于更新资源,DELETE用于删除资源。
-
URL:URL用于表示资源和资源之间的层次结构。资源的唯一标识符通常由URL的路径部分表示。
-
状态无关:RESTful API是无状态的,即服务器不保存客户端的状态信息。每个请求都应该包含足够的信息,以便服务器理解请求的意图。
-
响应格式:RESTful API通常以JSON或XML格式返回数据,这是一种常见的数据交换格式。
-
缓存:RESTful API支持缓存机制,使得客户端可以缓存响应以提高性能和减少网络流量。
-
无连接:RESTful API是无连接的,客户端和服务器之间的通信是临时的,每个请求都是独立的。
RESTful风格的设计使得API易于理解和使用,使客户端和服务器之间的通信变得简单和直观。它已成为现代Web应用程序和Web服务的主流设计范式。
文章介绍了如何在DjangoRestFramework(DRF)中使用DefaultRouter创建路由,并通过decorator添加额外的HTTP方法。RESTful是一种软件架构风格,强调资源的唯一标识符(URI)和HTTP方法(GET,POST,PUT,DELETE等)来操作资源。文章还讨论了RESTfulAPI的关键原则,包括资源、无状态、响应格式和缓存机制。
827

被折叠的 条评论
为什么被折叠?



