Skip to main content
 首页 » 编程设计

python之有没有更好的方法来创建 Django REST Web 服务

2025年05月04日46落叶

我是 Python Django 的新手 - 进一步回答我的问题。

我创建了一个 REST Web 服务,但我对我的代码非常不满意,但我找不到更好的解决方案。真的有必要为每个新的 URL 部分创建新的类吗?如果没有,我怎样才能找到更好的方法来解决这个问题?

urls.py

网址模式

 = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^movement/$', views.MovementDirection.as_view()), 
    url(r'^movement/on/$', views.On.as_view()), 
    url(r'^movement/off/$', views.Off.as_view()), 
    url(r'^movement/stop/$', views.Stop.as_view()), 
    url(r'^movement/forward/$', views.Forward.as_view()), 
    url(r'^movement/backwards/$', views.Backward.as_view()), 
] 
 
urlpatterns = format_suffix_patterns(urlpatterns) 

views.py

... 
#movement/forward 
class Forward(APIView): 
    def get(self, request): 
        print("FORWARD") 
        # engine control 
        return Response("Forward") 
 
#movement/backwards 
class Backward(APIView): 
    def get(self, request): 
        print("BACKWARD") 
        # engine control 
        return Response("Backward") 
... 

请您参考如下方法:

不,您不必为新 url 创建新类,您需要的是 View 集中的新操作。

url(r'^movements/$', views.MovementDirection.as_view()), 

View .py

class MovementDirection(ModelViewSet): # please notice the class 
    @list_route 
    def register(self, request): 
        # you can make it on a whole endpoint 
        # or on a single instance by using @detail_route 

检查 this question有关@detail_route 与@list_route 的更多信息

然后你可以通过请求movements/register

来调用它