先贴官网:http://www.django-rest-framework.org/
实际上在Django的原生框架如果想做到REST的API是比较生硬的,因为Django的URL设置,并没有如何限定request方法的参数,只能够设置URL匹配规则和指向方法。
但RESTful的API要求我们充分利用GET POST PUT DELET四种方法,所以迫不得已只能有下面这种代码了:
if request.method == 'GET':
handle_get()
elif request.method =='POST':
handle_post()
但实际上这种代码是很公用的,所以在django restframework中提供了一种APIView,可以让我们通过优雅的方式解决这种问题:
from rest_framework.views import APIView
class TerminalMetaInfo(APIView):
def get(self, request, *args, **kwargs):
# something for get
return render_api(result)
def put(self, request, *args, **kwargs):
# request's data (json->dict)
data = request.data
# something for put
return render_api(result)
这样就通过Class的方式优雅的避免了if-else噩梦,也让代码能够更好的被管理