django API 编写
以目前流行的restfull API来说,django提供了一些便捷的处理方式让我们使用。
但是在实作方面时常需要拿A又拿B,改A在删B,使用了此种风格的API后,
在灵活性上就缺失了一些,但本篇不讨论此内容,小弟实作了一些时间,也找寻了很多方法,还是认为没有哪个风格最完美,还是依照各自需求来决定。
风格是人订的,写法是好坏,各位同事间协调好就好 !!
基于函数的写法
此种方法会让接口杂乱,不易维护
# urls.pyfrom django.urls import pathfrom . import viewsurlpatterns = [ path('getQuestionAPI', views.getQuestionAPI, name = 'getQuestionAPI'), path('postQuestionAPI', views.postQuestionAPI, name = 'postQuestionAPI')]# views.pydef getQuestionAPI(request): # 取得资料 passdef postQuestionAPI(request): # 新增资料 pass
根据 restfull api 风格 改写函数
这样写的好处为接口乾净简洁,并且根据http方法请求来判断 增、修、改、查等等动作
# urls.pyfrom django.urls import pathfrom . import viewsurlpatterns = [ path('QuestionAPI', views.QuestionAPI, name = 'QuestionAPI')]# views.pydef QuestionAPI(request): httpMethod = request.method if httpMethod == 'GET': return HttpResponse('取得资料') else if httpMethod == 'POST': return HttpResponse('新增资料')
django - 基于类的写法
django 提供了一个更简洁的写法 详细可参考官方文档
# urls.pyfrom django.urls import pathfrom . import viewsurlpatterns = [ # 这里在 QuestionAPI后面加上.as_view() path('QuestionAPI', views.QuestionAPI.as_view(), name = 'QuestionAPI'),]# views.pyclass QuestionAPI(View): def get(self, request): return HttpResponse('请求资料') def post(self, request): return HttpResponse('新增资料')
官方上还有很多基于类的视图,有兴趣能够在更深入研究,会让实作起来更快速方便。