自我笔记 - django 系列 [API风格篇]

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('新增资料')

官方上还有很多基于类的视图,有兴趣能够在更深入研究,会让实作起来更快速方便。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章