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

django API 编写

以目前流行的restfull API来说,django提供了一些便捷的处理方式让我们使用。

但是在实作方面时常需要拿A又拿B,改A在删B,使用了此种风格的API後,
在灵活性上就缺失了一些,但本篇不讨论此内容,小弟实作了一些时间,也找寻了很多方法,还是认为没有哪个风格最完美,还是依照各自需求来决定。

风格是人订的,写法是好坏,各位同事间协调好就好 !!

基於函数的写法

此种方法会让接口杂乱,不易维护

# urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('getQuestionAPI', views.getQuestionAPI, name = 'getQuestionAPI'),
    path('postQuestionAPI', views.postQuestionAPI, name = 'postQuestionAPI')
]

# views.py
def getQuestionAPI(request):
    # 取得资料
    pass

def postQuestionAPI(request):
    # 新增资料
    pass

根据 restfull api 风格 改写函数

这样写的好处为接口乾净简洁,并且根据http方法请求来判断 增、修、改、查等等动作

# urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('QuestionAPI', views.QuestionAPI, name = 'QuestionAPI')
]

# views.py
def QuestionAPI(request):

    httpMethod = request.method

    if httpMethod == 'GET':
        return HttpResponse('取得资料')

    else if httpMethod == 'POST':
        return HttpResponse('新增资料')

django - 基於类的写法

django 提供了一个更简洁的写法 详细可参考官方文档

# urls.py
from django.urls import path
from . import views

urlpatterns = [
    # 这里在 QuestionAPI後面加上.as_view()
    path('QuestionAPI', views.QuestionAPI.as_view(), name = 'QuestionAPI'),
]

# views.py
class QuestionAPI(View):

    def get(self, request):
        return HttpResponse('请求资料')

    def post(self, request):
        return HttpResponse('新增资料')

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


<<:  自我笔记 - django 系列 [模型基础篇]

>>:  k8s开的kubectl logs路径修改

Day5 Next.js 介绍 - Production-ready 的 React.js 框架

这系列内容主要内容是在讲如何用 Next.js 取代 WordPress 前端,因此约 70% 内容...

Android学习笔记15

上次试了一般转圈圈的progressbar,这次换进度条的progressbarr 首先是xml &...

Day 21 Password Attacks - 密码攻击(hash-identifier, john)

前言 昨天我们用sqlmap突破了防守,取得了一些看起来像是帐号密码的东西 user_id user...

阴影(上)

大家好,我是西瓜,你现在看到的是 2021 iThome 铁人赛『如何在网页中绘制 3D 场景?从 ...

会员管理网站实作篇- (以律师谘询平台为例子) part4

大纲 安装 Ultimate Member plugin UM三大表单 实作律师卡片呈现页 终於到了...