苏州网站制作网络建设公司,出国做博士后网站,黄页是什么东西,电梯网站建设Django的FBV和CBV
基于django开发项目时#xff0c;对于视图可以使用 FBV 和 CBV 两种模式编写。 FBV#xff0c;function base views#xff0c;其实就是编写函数来处理业务请求。 from django.contrib import admin
from django.urls import path
from app01 import view…Django的FBV和CBV
基于django开发项目时对于视图可以使用 FBV 和 CBV 两种模式编写。 FBVfunction base views其实就是编写函数来处理业务请求。 from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns [path(users/, views.users),
]from django.http import JsonResponsedef users(request,*args, **kwargs):if request.method GET:return JsonResponse({code:1000,data:xxx})elif request.method POST:return JsonResponse({code:1000,data:xxx})...CBVclass base views其实就是编写类来处理业务请求。 from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns [path(users/, views.UserView.as_view()),
]from django.views import Viewclass UserView(View):def get(self, request, *args, **kwargs):return JsonResponse({code: 1000, data: xxx})def post(self, request, *args, **kwargs):return JsonResponse({code: 1000, data: xxx})其实CBV和FBV的底层实现本质上相同的。 CBV其实就是在FBV的基础上进行的功能的扩展根据请求的方式不同直接定位到不同的函数中去执行。
如果是基于django编写restful API很显然使用CBV的方式会更加简洁因为restful规范中就是根据method不同来执行不同操作。
基于django的CBV和restful规范开发实战案例
# urls.pyfrom django.urls import path
from app01 import viewsurlpatterns [# http://www.xxx.com/api/v1/users/path(api/str:version/users/, views.UserView.as_view()),# http://www.xxx.com/api/v1/users/2/path(api/str:version/users/int:pk/, views.UserView.as_view()),]# views.pyfrom django.views import View
from django.http import JsonResponseclass UserView(View):def get(self, request, version, pkNone):if not pk:# 请求用户列表info {code: 0,data: [{id: 1, name: 武沛齐},{id: 1, name: 武沛齐},]}return JsonResponse(info)else:# 获取IDpk的用户信息并返回info {code: 0,data: {id: 1, name: 武沛齐}}return JsonResponse(info)def post(self, request, version):# 新增用户读取 request.POST 中提交的数据并添加到数据库中info {code: 0,data: {id: 1, name: 武沛齐}}return JsonResponse(info)def delete(self, request, version, pk):# 删除idpk的用户info {code: 0,data: {}}return JsonResponse(info)def put(self, request, version, pk):# 读取request.POST中的数据 pk更新数据库中的用户信息info {code: 0,data: {id: 1, name: 武沛齐}}return JsonResponse(info)def patch(self, request, version, pk):# 读取request.POST中的数据 pk更新数据库中的用户信息info {code: 0,data: {id: 1, name: 武沛齐}}return JsonResponse(info)
从上面的示例看来基于django框架完全可以开发restful API。
django restframework框架 是在django的基础上又给我们提供了很多方便的功能让我们可以更便捷基于django开发restful API来一个简单的实例快速了解下 基于django 基于django django restframework框架